温馨提示×

Ubuntu PHP如何连接MySQL

小樊
35
2026-06-30 22:42:23
栏目: 云计算

在 Ubuntu 上,PHP 连接 MySQL 常用 MySQLiPDO 两种方式。下面按最常见场景一步一步说明。


一、环境准备(Ubuntu)

1. 安装 Apache / Nginx + PHP + MySQL

Apache + PHP + MySQL 为例(最常用):

sudo apt update
sudo apt install apache2 mysql-server php php-mysql libapache2-mod-php

2. 检查 PHP 是否安装

php -v

二、检查 MySQL 扩展是否启用

php -m | grep -i mysql

正常应看到:

  • mysqli
  • pdo_mysql

如果没有,安装:

sudo apt install php-mysql
sudo systemctl restart apache2

三、创建测试数据库

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

四、PHP 连接 MySQL 示例

✅ 方式一:MySQLi(面向过程)

<?php
$host = "localhost";
$user = "testuser";
$password = "password";
$database = "testdb";

$conn = mysqli_connect($host, $user, $password, $database);

if (!$conn) {
    die("连接失败: " . mysqli_connect_error());
}

echo "MySQL 连接成功(MySQLi)";
?>

✅ 方式二:MySQLi(面向对象,推荐)

<?php
$mysqli = new mysqli("localhost", "testuser", "password", "testdb");

if ($mysqli->connect_error) {
    die("连接失败: " . $mysqli->connect_error);
}

echo "MySQL 连接成功(MySQLi 面向对象)";
?>

✅ 方式三:PDO(最推荐,跨数据库)

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

五、常见错误排查

❌ 1. 页面空白

sudo apt install php-cli
php -l test.php

❌ 2. 连接被拒绝

  • MySQL 是否启动:
sudo systemctl status mysql
  • 用户名/密码是否正确
  • 是否允许 localhost 登录

❌ 3. 端口不是 3306

"mysql:host=127.0.0.1;port=3307"

六、推荐做法(安全)

✅ 使用 PDO + 预处理语句
✅ 密码不要写死在代码里
✅ 不在生产环境显示数据库错误


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

  • Apache / Nginx
  • PHP 版本
  • 是否 Docker / 云服务器

我可以给你更贴近你环境的完整示例。

0