當在Ubuntu上使用PHP-FPM連接MySQL時遇到連接失敗的問題,可以嘗試以下步驟進行排查和解決:
確保已安裝PHP MySQL擴展:
對于PHP 7.x,需要安裝php7.x-mysql
擴展;
對于PHP 8.x,需要安裝php8.x-mysql
擴展。
使用以下命令安裝:
sudo apt-get update
sudo apt-get install php7.x-mysql
或者
sudo apt-get update
sudo apt-get install php8.x-mysql
檢查MySQL服務是否正在運行: 使用以下命令檢查MySQL服務狀態:
sudo systemctl status mysql
如果MySQL服務未運行,請使用以下命令啟動它:
sudo systemctl start mysql
檢查MySQL配置文件中的綁定地址:
打開MySQL配置文件/etc/mysql/mysql.conf.d/mysqld.cnf
,找到bind-address
這一行,確保其值為0.0.0.0
或者注釋掉這一行。這樣可以允許外部連接。
bind-address = 0.0.0.0
修改后,重啟MySQL服務:
sudo systemctl restart mysql
檢查防火墻設置: 如果你的服務器使用了防火墻,確保開放了MySQL的默認端口3306。使用以下命令開放端口:
sudo ufw allow 3306/tcp
檢查PHP代碼中的數據庫連接信息: 確保在PHP代碼中使用的數據庫主機名、用戶名、密碼和數據庫名稱都是正確的。如果使用的是遠程數據庫服務器,請確保遠程服務器允許外部連接。
查看錯誤日志:
檢查PHP-FPM和MySQL的錯誤日志,以獲取更多關于連接失敗的詳細信息。PHP-FPM錯誤日志通常位于/var/log/php7.x-fpm.log
(對于PHP 7.x)或/var/log/php8.x-fpm.log
(對于PHP 8.x)。MySQL錯誤日志通常位于/var/log/mysql/error.log
。
根據以上步驟進行排查和解決,應該可以找到并解決PHP-FPM連接MySQL失敗的問題。如果問題仍然存在,請提供更多詳細信息以便進一步分析。