溫馨提示×

ubuntu下php-fpm與mysql連接問題怎么解決

小樊
36
2025-08-07 12:20:50
欄目: 云計算

  1. 安裝PHP MySQL擴展

    • PHP 7.x:sudo apt-get install php7.x-mysql
    • PHP 8.x:sudo apt-get install php8.x-mysql
      安裝后重啟PHP-FPM:sudo systemctl restart php7.x-fpm。
  2. 檢查MySQL服務狀態
    確保MySQL正在運行:sudo systemctl status mysql,未運行則啟動:sudo systemctl start mysql。

  3. 驗證用戶權限
    登錄MySQL檢查用戶權限:

    SELECT User, Host FROM mysql.user WHERE User = 'your_user';
    SHOW GRANTS FOR 'your_user'@'localhost';
    

    若權限不足,授權:
    GRANT ALL PRIVILEGES ON your_db.* TO 'your_user'@'localhost' IDENTIFIED BY 'your_password'; FLUSH PRIVILEGES;。

  4. 檢查連接配置

    • 確保PHP代碼中的主機名、端口、用戶名、密碼正確(默認主機localhost,端口3306)。
    • 若使用遠程連接,需在MySQL配置文件(/etc/mysql/my.cnf)中設置bind-address=0.0.0.0,并重啟MySQL。
  5. 排查防火墻與網絡
    若跨服務器連接,確保防火墻允許MySQL端口(3306)通信:
    sudo ufw allow 3306(Ubuntu默認防火墻)。

  6. 查看錯誤日志

    • PHP錯誤日志:/var/log/php-fpm/error.log,查看具體報錯信息。
    • MySQL錯誤日志:/var/log/mysql/error.log,排查數據庫端問題。
  7. 優化連接參數(可選)

    • 調整PHP-FPM配置(/etc/php/7.x/fpm/pool.d/www.conf):合理設置pm.max_children等參數,避免進程阻塞。
    • MySQL配置(/etc/mysql/my.cnf):優化max_connections、wait_timeout等參數。

常見錯誤示例

  • 若報錯“Call to undefined function mysqli_connect()”,未安裝PHP MySQL擴展。
  • 若報錯“Lost connection to MySQL server”,可能是網絡中斷或MySQL服務異常,需檢查防火墻、服務狀態及超時設置。

按以上步驟逐步排查,可解決大部分連接問題。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女