MySQL服务器拒绝来自本地PHP脚本的连接,但不拒绝来自本地MySQL客户端的连接

时间:2016-03-09 19:32:42

标签: php mysql ubuntu lamp

这个问题让我措手不及。我刚刚设置了这个LAMP服务器,一切似乎都运行良好,直到我尝试运行一些与MySQL服务器通信的PHP。

在读取初始通信数据包时失去与MySQL服务器的连接',系统错误:0

显然,MySQL服务器出于某种原因不会与PHP交谈。我继续使用MySQL客户端连接到它,并且没有任何问题登录和查询。我看一下MySQL的systemctl,发现由于某种原因它故意否认连接。

vultr.guest systemd[1]: Started MySQL Community Server.
vultr.guest mysqld[17740]: warning: cannot open /etc/hosts.allow: Permission denied
vultr.guest mysqld[17740]: warning: cannot open /etc/hosts.deny: Permission denied
vultr.guest mysqld[17740]: refused connect from ::1

右。所以我检查了hosts文件,他们的权限被设置为774,这实际上不应该造成任何问题。为了科学,我获得了777的许可,但它似乎没有任何区别。在这一点上,我有点处于停滞状态,因为我无法找到任何其他线索来解决可能存在的问题。目前大多数情况下,所有的配置都是PHP和MySQL的默认配置,所以老实说,我不能想到它们的配置可能带来的任何差异。有谁愿意分享他们的想法?

1 个答案:

答案 0 :(得分:0)

从您的日志看起来它已经建立连接但被mysqld拒绝,所以这可能既不是端口问题也不是防火墙相关的。

据我所知,如果您使用命令行客户端与localhost上的服务器建立连接,则客户端始终通过套接字文件建立连接。另一方面,PHP可能使用TCP / IP。

可能在你的mysqld配置中有一个错误(或一些特殊的安全措施),你的mysqld监听端口但是拒绝所有的TCP / IP连接。