解決CentOS下PHP連接數據庫失敗可按以下步驟排查:
檢查數據庫服務狀態
使用命令 sudo systemctl status mysqld(或MariaDB)確認服務是否運行,未運行則啟動:
sudo systemctl start mysqld。
驗證數據庫配置信息
檢查PHP代碼或配置文件(如/etc/php.ini、應用配置文件)中的數據庫主機名、端口、用戶名、密碼是否正確。
localhost連接失敗,可嘗試替換為127.0.0.1或檢查MySQL配置文件/etc/my.cnf中的bind-address是否允許遠程連接。處理權限問題
確保數據庫用戶有足夠權限,可通過MySQL命令行執行:
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost' IDENTIFIED BY 'password'; FLUSH PRIVILEGES;。
檢查防火墻與網絡
sudo firewall-cmd --permanent --add-port=3306/tcp && sudo firewall-cmd --reload。ping或telnet測試網絡連通性。啟用PHP擴展
確保php.ini中啟用了數據庫擴展(如mysqli或pdo_mysql),可通過php -m查看已加載模塊,未啟用則取消注釋對應行并重啟Web服務器。
查看錯誤日志
/var/log/mysql/error.log)和PHP錯誤日志(如/var/log/php_errors.log),獲取具體錯誤信息。tail -f /var/log/php_errors.log實時查看錯誤日志。其他高級操作
sudo setenforce 0,若問題解決需調整策略。示例:快速測試連接
創建PHP測試腳本test_db.php:
<?php
$servername = "localhost";
$username = "root";
$password = "password";
$dbname = "test_db";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("連接失敗: " . $conn->connect_error);
}
echo "連接成功";
?>
通過瀏覽器訪問該腳本,若顯示“連接成功”則配置正確。
按以上步驟逐步排查,可定位并解決大部分連接問題。