温馨提示×

debian php怎么连mysql

小樊
49
2026-09-08 03:45:15
栏目: 云计算

在 Debian 上让 PHP 连接 MySQL,通常分为三步:安装组件 → 配置 PHP 扩展 → 写测试代码。下面以 Debian 11/12 + PHP 8.x + MySQL/MariaDB 为例。


一、安装 PHP 和 MySQL 相关组件

1. 更新系统

sudo apt update
sudo apt upgrade -y

2. 安装 PHP 和 MySQL 扩展

sudo apt install php php-mysql mysql-server -y

如果你用的是 Nginx:

sudo apt install nginx php-fpm -y

如果你用的是 Apache:

sudo apt install apache2 libapache2-mod-php -y

二、确认 PHP MySQL 扩展已启用

查看已加载扩展

php -m | grep -i mysql

应看到:

mysqli
pdo_mysql

如果没有,手动安装:

sudo apt install php-mysql
sudo systemctl restart apache2   # Apache
# 或
sudo systemctl restart php8.2-fpm  # Nginx

三、创建 MySQL 数据库和用户

sudo mysql -u root
CREATE DATABASE testdb;
CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON testdb.* TO 'testuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

四、PHP 连接 MySQL 示例

方式 1:mysqli(过程化)

<?php
$conn = mysqli_connect("localhost", "testuser", "password", "testdb");

if (!$conn) {
    die("连接失败: " . mysqli_connect_error());
}
echo "MySQL 连接成功";
?>

方式 2:PDO(推荐)

<?php
try {
    $pdo = new PDO(
        "mysql:host=localhost;dbname=testdb;charset=utf8mb4",
        "testuser",
        "password"
    );
    echo "PDO 连接成功";
} catch (PDOException $e) {
    echo "连接失败: " . $e->getMessage();
}
?>

五、常见问题排查

1. 连接被拒绝

  • MySQL 是否启动
sudo systemctl status mysql
  • 用户是否允许 localhost

2. 出现 undefined class mysqli

sudo apt install php-mysql

3. 使用socket连接

new PDO("mysql:unix_socket=/var/run/mysqld/mysqld.sock;dbname=testdb", "user", "pass");

如果你愿意,可以告诉我:

  • 用的是 Apache 还是 Nginx
  • PHP 版本
  • 报错信息

我可以直接帮你对症解决。

0 踩