温馨提示×

ubuntu php怎么连mysql

小樊
44
2026-10-28 04:10:46
栏目: 云计算

在 Ubuntu 上用 PHP 连接 MySQL,一般分 环境安装 和 代码连接 两部分。下面以 Ubuntu 20.04/22.04 + PHP 8.x + MySQL 8 为例。


一、安装环境

1. 安装 MySQL

sudo apt update
sudo apt install mysql-server
sudo mysql_secure_installation

启动并查看状态:

sudo systemctl start mysql
sudo systemctl enable mysql

2. 安装 PHP 和 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

二、创建 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 连接 MySQL 的几种方式

方式 1:mysqli(过程化)

<?php
$conn = mysqli_connect("localhost", "testuser", "password", "testdb");
if (!$conn) {
    die("连接失败: " . mysqli_connect_error());
}
echo "连接成功";
mysqli_close($conn);
?>

方式 2:mysqli(面向对象,推荐)

<?php
$conn = new mysqli("localhost", "testuser", "password", "testdb");
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}
echo "连接成功";
$conn->close();
?>

方式 3:PDO(最推荐)

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

四、常见问题

1. 报错 Class 'mysqli' not found

sudo apt install php-mysql
sudo systemctl restart apache2   # 或 php-fpm

2. 访问拒绝(Access denied)

  • 用户名/密码错误
  • 用户不是 localhost
  • MySQL 8 默认用 caching_sha2_password

可改为:

ALTER USER 'testuser'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

3. 网页没反应

  • 确认 PHP 已解析
  • 查看错误日志:
tail -f /var/log/apache2/error.log
# 或
tail -f /var/log/nginx/error.log

如果你告诉我:

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

我可以给你更精确的配置示例。

0 踩