在 Ubuntu 上让 PHP 连接数据库,常见的是 MySQL / MariaDB。下面按“从安装到测试”一步步来,适合新手。
sudo apt update
sudo apt install apache2 php php-mysql mysql-server
安装完成后检查:
php -v
mysql --version
sudo systemctl start mysql
sudo systemctl enable mysql
sudo mysql_secure_installation
按提示设置 root 密码、删除测试库等。
登录 MySQL:
sudo mysql -u root -p
执行 SQL:
CREATE DATABASE testdb;
CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON testdb.* TO 'testuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
创建测试文件:
sudo nano /var/www/html/db_test.php
写入以下内容:
<?php
$host = "localhost";
$user = "testuser";
$password = "password";
$database = "testdb";
$conn = new mysqli($host, $user, $password, $database);
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
echo "✅ PHP 成功连接 MySQL 数据库!";
$conn->close();
?>
浏览器访问:
http://localhost/db_test.php
<?php
try {
$dsn = "mysql:host=localhost;dbname=testdb;charset=utf8mb4";
$pdo = new PDO($dsn, "testuser", "password");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "✅ PDO 成功连接数据库!";
} catch (PDOException $e) {
echo "连接失败: " . $e->getMessage();
}
?>
检查是否安装扩展:
php -m | grep mysql
如果没有:
sudo apt install php-mysql
sudo systemctl restart apache2
确认用户是 localhost,不是 %:
SELECT user, host FROM mysql.user;
sudo ufw status
本地连接一般不用开端口。
Ubuntu
├─ 安装 php php-mysql mysql-server
├─ 创建数据库和用户
├─ PHP 使用 mysqli 或 PDO 连接
└─ 浏览器测试
如果你用的是 Nginx + PHP-FPM、远程数据库、SQLite 或 Laravel / ThinkPHP,告诉我,我可以给你对应配置。