加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 访问被拒绝用户’www-data’@’localhost – 如何处理?

发布时间:2020-12-13 16:24:01 所属栏目:PHP教程 来源:网络整理
导读:昨天我面对一个奇怪的问题.我有服务器运行Debian,安装了 PHP 4.4.4-8和mysql 5.5.9.该服务器服务于几个网站. 由于某些原因随机我得到那个错误“访问被拒绝为用户’www-data’@’localhost'(使用密码:否)”当我尝试加载网页. 如果我点击刷新页面加载正常,但
昨天我面对一个奇怪的问题.我有服务器运行Debian,安装了 PHP 4.4.4-8和mysql 5.5.9.该服务器服务于几个网站.
由于某些原因随机我得到那个错误“访问被拒绝为用户’www-data’@’localhost'(使用密码:否)”当我尝试加载网页.
如果我点击刷新页面加载正常,但多次点击该消息再次出现.该页面用于连接到mysql服务器的用户名不是www-data.

有没有人遇到类似的问题?

www-data是运行apache和php的Debian用户.如果您在没有有效连接时尝试查询,则php / mysql将尝试使用< unix-user> @localhost创建一个没有密码的连接.这是www-data @ localhost(使用密码:NO)来自哪里.

这个现在已经开始发生的最有可能的原因(尽管它在两年前已经运行良好)是您的数据库负载已经增加到某些连接无法成功的程度(可能是由于max_connections或max_user_connections;但是这也可能来自其他限制,如内存,线程等).当这种情况发生时,您对mysql_connect的调用将发出错误消息,并返回FALSE.如果您无法检测到此故障,则您的下一个mysql调用(可能是mysql_query或mysql_select_db)将尝试连接到www-data @ localhost,从而导致您遇到的问题.

我建议启用错误报告和错误显示(由@DarkMantis建议):

ini_set('error_reporting',E_ALL|E_STRICT);
ini_set('display_errors',1);

另外,请确保您的mysql_connect调用前面没有@符号;并确保检查返回值.它应该看起来像这样:

$cxn = mysql_connect('localhost','yourusername','yourpassword');
if( $cxn === FALSE ) {  die('mysql connection error: '.mysql_error()); }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读