在Ubuntu下,PHP-FPM連接MySQL失敗可能有以下幾個原因:
未安裝或未正確配置PHP MySQL擴展:
請確保已安裝PHP MySQL擴展。對于PHP 7.x,您需要安裝php7.x-mysql
擴展??梢允褂靡韵旅畎惭b:
sudo apt-get install php7.x-mysql
然后重啟PHP-FPM服務:
sudo systemctl restart php7.x-fpm
對于PHP 8.x,您需要安裝php8.x-mysql
擴展:
sudo apt-get install php8.x-mysql
然后重啟PHP-FPM服務:
sudo systemctl restart php8.x-fpm
MySQL服務未啟動或無法訪問: 請確保MySQL服務正在運行:
sudo systemctl status mysql
如果MySQL服務未啟動,請使用以下命令啟動它:
sudo systemctl start mysql
如果仍然無法訪問,請檢查MySQL的配置文件(通常位于/etc/mysql/my.cnf
或/etc/mysql/mysql.conf.d/mysqld.cnf
),確保bind-address
設置為127.0.0.1
或0.0.0.0
,以允許來自本地計算機的連接。
防火墻設置: 如果您的防火墻阻止了PHP-FPM與MySQL之間的通信,請更新防火墻規則以允許連接。
用戶名、密碼或數據庫名稱錯誤: 請檢查您的PHP代碼中的數據庫連接信息,確保用戶名、密碼和數據庫名稱正確無誤。
MySQL用戶權限問題: 請確保MySQL用戶具有訪問和操作數據庫的權限。您可以使用以下命令檢查和設置權限:
GRANT ALL PRIVILEGES ON your_database_name.* TO 'your_username'@'localhost' IDENTIFIED BY 'your_password';
FLUSH PRIVILEGES;
檢查以上原因并進行相應的修復,應該可以解決PHP-FPM連接MySQL失敗的問題。如果問題仍然存在,請提供更多詳細信息以便進一步排查。