我昨天遇到了一个奇怪的问题。我有运行Debian的服务器,安装了PHP 4.4.4-8和mysql 5.5.9。该服务器服务于几个网站。 出于某种原因,当我尝试加载网页时,我会随机收到“用户拒绝访问'www-data'@'localhost'(使用密码:NO)”错误。 如果我点击刷新页面正常加载,但几次点击该消息再次出现。该页面用于连接mysql服务器的用户名不是www-data。
有没有人遇到过类似的问题?
答案 0 :(得分:16)
www-data
是运行apache和php的Debian用户。如果在没有有效连接的情况下尝试查询,php / mysql将尝试使用<unix-user>@localhost
创建没有密码的连接。这是www-data@localhost (using password:NO)
的来源。
现在已经开始发生这种情况的最可能原因(尽管它已经运行了2年之前)是你的数据库负载增加到某些连接无法成功的程度(可能是由于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()); }
答案 1 :(得分:2)
这听起来像是在调用特定内容时导致错误的查询。这可能意味着在调用查询时,您没有使用正确的用户名/密码连接到数据库。
尽量确保您已确定连接,在所有查询变量的末尾使用or die(mysql_error());
进行调试。
另外,在php文件的顶部使用以下两行:
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
这将向您显示您的课程/文件中可能出现的任何小错误,这些错误可能是您之前未提起的。
如果您在此之后仍有问题,请发布您的PHP代码,我会直接看一下。
谢谢!
答案 2 :(得分:1)
我遇到了同样的问题。 问题出在我的config.php中! 我只是改变了 $ dbserver “127.0.0.1” - &gt; “本地主机”。强> 现在连接再次有效!
答案 3 :(得分:0)
使用密码&#39;否&#39;
for sheet_name in EF.sheet_names:
temp_df = EF.parse(sheet_name)
#perform your calculations
#export to SQL
&#13;
答案 4 :(得分:0)
取消安全模式为我修复了它:
Notice: mysql_connect(): SQL safe mode in effect - ignoring host/user/password information in /var/www/html/test.php on line 4
答案 5 :(得分:0)
对于思维不集中的人,当在mysql_query()
之后调用mysqli_connect()
时,应该在mysqli_query()
处调用此错误。
答案 6 :(得分:-1)
解决这个问题。我不得不改变连接脚本使用
(MySQLi Object-Oriented)
<?php
$servername = "localhost";
$username = "username";
$password = "password";
// Create connection
$conn = new mysqli($servername, $username, $password);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>
&#13;