ubuntu下php-fpm与mysql连接问题怎么解决
-
安装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
。
- PHP 7.x:
-
检查MySQL服务状态
确保MySQL正在运行:sudo systemctl status mysql
,未运行则启动:sudo systemctl start mysql
。 -
验证用户权限
登录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;
。 -
检查连接配置
- 确保PHP代码中的主机名、端口、用户名、密码正确(默认主机
localhost
,端口3306
)。 - 若使用远程连接,需在MySQL配置文件(
/etc/mysql/my.cnf
)中设置bind-address=0.0.0.0
,并重启MySQL。
- 确保PHP代码中的主机名、端口、用户名、密码正确(默认主机
-
排查防火墙与网络
若跨服务器连接,确保防火墙允许MySQL端口(3306)通信:
sudo ufw allow 3306
(Ubuntu默认防火墙)。 -
查看错误日志
- PHP错误日志:
/var/log/php-fpm/error.log
,查看具体报错信息。 - MySQL错误日志:
/var/log/mysql/error.log
,排查数据库端问题。
- PHP错误日志:
-
优化连接参数(可选)
- 调整PHP-FPM配置(
/etc/php/7.x/fpm/pool.d/www.conf
):合理设置pm.max_children
等参数,避免进程阻塞。 - MySQL配置(
/etc/mysql/my.cnf
):优化max_connections
、wait_timeout
等参数。
- 调整PHP-FPM配置(
常见错误示例:
- 若报错“Call to undefined function mysqli_connect()”,未安装PHP MySQL扩展。
- 若报错“Lost connection to MySQL server”,可能是网络中断或MySQL服务异常,需检查防火墙、服务状态及超时设置。
按以上步骤逐步排查,可解决大部分连接问题。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权请联系我们,一经查实立即删除!