當你在 CentOS 上的 PHP 應用程序中遇到數據庫連接失敗的問題時,可以按照以下步驟進行排查和解決:
確認數據庫服務是否正在運行: 使用以下命令檢查 MySQL 或 MariaDB 服務的狀態:
sudo systemctl status mysqld
或者
sudo systemctl status mariadb
如果服務沒有運行,請使用以下命令啟動它:
sudo systemctl start mysqld
或者
sudo systemctl start mariadb
檢查數據庫連接配置:
確保 PHP 應用程序中的數據庫連接配置(如主機名、端口、用戶名、密碼和數據庫名)是正確的。這些配置通常存儲在配置文件(如 config.php
或 .env
文件)中。
檢查防火墻設置: 如果你的應用程序和數據庫服務器位于不同的服務器上,請確保防火墻允許數據庫連接。例如,如果使用的是 MySQL,默認端口是 3306。你可以使用以下命令打開此端口:
sudo firewall-cmd --permanent --zone=public --add-port=3306/tcp
sudo firewall-cmd --reload
檢查 SELinux 設置: 如果 SELinux 已啟用并阻止了數據庫連接,你可以嘗試臨時禁用 SELinux 以進行測試:
sudo setenforce 0
如果這解決了問題,你可以考慮調整 SELinux 策略以允許數據庫連接,或者將其設置為 permissive 模式(不推薦):
sudo sed -i 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/selinux/config
查看 PHP 和數據庫日志:
檢查 PHP 應用程序的錯誤日志以及數據庫服務器的日志(如 MySQL 的 /var/log/mysqld.log
),以獲取更多關于連接失敗的詳細信息。
檢查 PHP 數據庫擴展:
確保已安裝并啟用了與你的數據庫相對應的 PHP 擴展(如 mysqli
或 PDO_MySQL
)。
通過以上步驟,你應該能夠找到并解決 CentOS 上 PHP 數據庫連接失敗的問題。如果問題仍然存在,請提供更多詳細信息以便進一步排查。