Ubuntu 下 PHP 与 MySQL 数据库连接实操指南
一 环境准备与安装
- 更新索引并安装所需组件(以 Apache + PHP + MySQL 为例,如使用 Nginx 则将 apache2 替换为 nginx):
- 安装命令:
- sudo apt update
- sudo apt install apache2 php php-mysql mysql-server
- 启动并启用数据库服务:
- sudo systemctl start mysql
- sudo systemctl enable mysql
- 运行安全初始化向导,设置 root 密码及安全项:
- sudo mysql_secure_installation
- 验证服务状态:
- sudo systemctl status mysql
以上步骤完成后,系统具备 PHP 与 MySQL 的基础运行环境。
二 数据库与用户创建
- 登录数据库:
- 在 MySQL Shell 中执行(请替换示例中的数据库名、用户名与密码):
- CREATE DATABASE mydatabase;
- CREATE USER ‘myuser’@‘localhost’ IDENTIFIED BY ‘mypassword’;
- GRANT ALL PRIVILEGES ON mydatabase.* TO ‘myuser’@‘localhost’;
- FLUSH PRIVILEGES;
- EXIT;
上述操作为应用创建最小权限的专用账户与数据库,提升安全性。
三 PHP 连接 MySQL 的两种常用方式
- 使用 PDO(推荐,支持预处理、可移植性更好):
- 示例代码(config.php):
-
setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected successfully";
} catch (PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
?>
- 使用 mysqli(面向对象):
- 示例代码(connect.php):
-
connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>
- 将文件放入 /var/www/html/,通过浏览器访问:
- http://your_server_ip/connect.php 或 http://your_server_ip/config.php
若页面输出“Connected successfully”,说明 PHP 与数据库连通正常。
四 Web 服务器与 PHP-FPM 配置要点
- 使用 Nginx + PHP-FPM 时,确保站点配置中 fastcgi_pass 指向正确的 PHP-FPM socket,示例:
- location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.4-fpm.sock; # 请按实际 PHP 版本调整
}
- 修改后重启服务:
- sudo systemctl restart nginx
- 如使用 Apache,确保启用 PHP 模块或正确代理到 PHP-FPM。
以上配置确保 Web 服务器能正确解析并执行 PHP 脚本。
五 常见问题排查与安全建议
- 排查要点
- 确认 PHP 已安装并启用 MySQL 扩展:sudo apt install php-mysql;必要时重启 Apache/Nginx 或 PHP-FPM。
- 检查数据库服务是否运行:sudo systemctl status mysql;无法登录时,用 sudo mysql -u root -p 验证凭据与权限。
- 远程连接失败:确保数据库监听正确地址、系统防火墙放行端口(如 3306),并为应用创建允许远程的来源主机用户(例如 ‘myuser’@‘your_web_ip’)。
- 安全建议
- 不在代码中硬编码数据库凭据,使用环境变量或受保护的配置文件,并限制文件权限。
- 为应用创建最小权限数据库用户,避免使用 root。
- 始终使用预处理语句(PDO/mysqli)防止 SQL 注入。
- 保持 PHP、MySQL、操作系统 与安全组件更新,及时修补漏洞。
以上做法可显著提升连接成功率与系统安全性。