Ubuntu LAMP 数据库连接失败排查与修复
一 快速自检
二 常见错误与对应修复
错误 2002:无法通过套接字连接
错误 2003:无法连接到 MySQL 服务器
错误 1045:Access denied
错误 1129/Host is blocked
连接错误过多被屏蔽,执行:mysqladmin -u root -h 服务器IP flush-hosts,并检查应用连接池与重试逻辑。
三 PHP 连接排查与修复
安装与启用扩展:sudo apt install php libapache2-mod-php php-mysql,确保模块已启用。
测试脚本验证(/var/www/html/db_test.php):
<?php
$servername = "localhost"; // 若本机 TCP 正常但 PHP 仍失败,可改为 "127.0.0.1"
$username = "my_user";
$password = "my_password";
$dbname = "my_database";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
echo "连接成功";
?>
访问 http://服务器IP/db_test.php 查看结果;若 “localhost” 失败而 127.0.0.1 成功,通常是 PHP 以 socket 方式连接且路径/权限不一致。
进一步定位:查看 /var/log/apache2/error.log 与 /var/log/php-fpm.log* 获取具体报错与行号。
四 远程连接配置要点
五 仍未解决时的高效定位建议