ubuntu

ubuntu下php-fpm与mysql连接问题怎么解决

小樊
38
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_connectionswait_timeout等参数。

常见错误示例

按以上步骤逐步排查,可解决大部分连接问题。

0
看了该问题的人还看了