在 Ubuntu 上,PHP 连接 MySQL 常用 MySQLi 或 PDO 两种方式。下面按最常见场景一步一步说明。
以 Apache + PHP + MySQL 为例(最常用):
sudo apt update
sudo apt install apache2 mysql-server php php-mysql libapache2-mod-php
php -v
php -m | grep -i mysql
正常应看到:
mysqlipdo_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
$host = "localhost";
$user = "testuser";
$password = "password";
$database = "testdb";
$conn = mysqli_connect($host, $user, $password, $database);
if (!$conn) {
die("连接失败: " . mysqli_connect_error());
}
echo "MySQL 连接成功(MySQLi)";
?>
<?php
$mysqli = new mysqli("localhost", "testuser", "password", "testdb");
if ($mysqli->connect_error) {
die("连接失败: " . $mysqli->connect_error);
}
echo "MySQL 连接成功(MySQLi 面向对象)";
?>
<?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());
}
?>
sudo apt install php-cli
php -l test.php
sudo systemctl status mysql
localhost 登录"mysql:host=127.0.0.1;port=3307"
✅ 使用 PDO + 预处理语句
✅ 密码不要写死在代码里
✅ 不在生产环境显示数据库错误
如果你愿意,可以告诉我:
我可以给你更贴近你环境的完整示例。