在 Ubuntu 上用 PHP 连接 MySQL,一般分 环境安装 和 代码连接 两部分。下面以 Ubuntu 20.04/22.04 + PHP 8.x + MySQL 8 为例。
sudo apt update
sudo apt install mysql-server
sudo mysql_secure_installation
启动并查看状态:
sudo systemctl start mysql
sudo systemctl enable mysql
sudo apt install php php-mysql
如果你用的是 Nginx:
sudo apt install php-fpm
如果是 Apache:
sudo apt install libapache2-mod-php
检查扩展:
php -m | grep mysqli
php -m | grep pdo_mysql
sudo mysql
CREATE DATABASE testdb;
CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON testdb.* TO 'testuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
<?php
$conn = mysqli_connect("localhost", "testuser", "password", "testdb");
if (!$conn) {
die("连接失败: " . mysqli_connect_error());
}
echo "连接成功";
mysqli_close($conn);
?>
<?php
$conn = new mysqli("localhost", "testuser", "password", "testdb");
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
echo "连接成功";
$conn->close();
?>
<?php
try {
$pdo = new PDO(
"mysql:host=localhost;dbname=testdb;charset=utf8mb4",
"testuser",
"password"
);
echo "连接成功";
} catch (PDOException $e) {
die("连接失败: " . $e->getMessage());
}
?>
Class 'mysqli' not foundsudo apt install php-mysql
sudo systemctl restart apache2 # 或 php-fpm
localhostcaching_sha2_password可改为:
ALTER USER 'testuser'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
tail -f /var/log/apache2/error.log
# 或
tail -f /var/log/nginx/error.log
如果你告诉我:
我可以给你更精确的配置示例。