我使用PHP MySQLi连接到MySQL,有时做查询我得到错误:
"Permission denied"错误码:2002.
奇怪的是,它发生在不同的查询和完全不可预测的。例如,它可能发生在前两个查询正确执行后的第三个查询。
我知道这不是MySQL的问题,因为我把它从一个服务器移动到另一个服务器,问题仍然存在。最可能的问题是PHP或PHP和MySQL服务器之间的互连(它们在不同的机器上)
有人有想法吗?
编辑:
查询什么得到"权限被拒绝"工作,如果我重新启动脚本-它不是权限问题
错误:
[23-Apr-2011 19:00:02] PHPmysqli: mysqli () [mysqli.mysqli]:[2002]拒绝许可(试图)通过tcp://xxx.xxx.xxx.xxx: 3306)/home/……/db .php第19行
[23-Apr-2011 19:00:02] PHP警告:mysqli: mysqli () [mysqli.mysqli]:(HY000/2002):禁止进入/home/……/db .php第19行
同样的事情也发生在我的环境中。原因是SELinux。
您可以通过从命令行执行php来连接数据库而你可能不会在web服务器上执行。
在我的例子中,我关闭了SELinux。
# setenforce 0
或者必须正确设置SELinux
我认为数据库用户没有足够的权限对特定的mysql表进行特定的操作
这不是权限错误。客户端无法连接到数据库,更不用说对用户进行身份验证了。
我怀疑这些问题是由网络问题(阻止客户端/服务器机器相互通信)或MySQL服务器进程未在远程主机上运行引起的。
错误代码记录在这里:http://dev.mysql.com/doc/refman/5.5/en/can-not-connect-to-server.html
检查通过