mysql“访问被拒绝用户”(仅在通过php连接时发生)

时间:2011-09-08 21:08:33

标签: php mysql access-denied

我创建了用户dashboard并为其授予了各种权限(例如SHOW DATABASES)。我最初设置了Host = [web-server的私有ip],但是从php mysql_connect返回的访问被拒绝错误,所以我设置Host=192.168.%所以我们网络上的任何机器都可以访问它。

我可以使用MySQLWorkbench成功连接到我的Mac上的Db服务器上的mysql Db(并成功运行SHOW DATABASES;),但是当我尝试通过我们的网络服务器上的php连接时,我得到:{{ 1}}

我在php中使用的代码是:

Access denied for user 'dashboard'@'192.168.xx.xx' (using password: YES)

半相关说明:我可以以某种方式将<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <head> <?php $dbhost = "192.168.x.x"; // but no x's $dbuser = "dashboard"; $dbpass = "password"; // i copied&pasted the real password for other successful logins $dbconnect = mysql_connect($dbhost, $dbuser, $dbpass) or die(mysql_error()); $query = mysql_query('SHOW DATABASES;'); ?> </head> <body> <? echo $query ?> </body> </html> 设置为等于加密字符串,这样它就不会存储为纯文本吗?

编辑:mysql用户当前是$dbpass(不是localhost)

编辑2 :我认为既然Web服务器在DMZ中,它可能正在通过它的公共IP与MySQL通信,但是当我将dashboard@192.168.%的主机更改为,我得到dashboard。所以似乎情况并非如此......

2 个答案:

答案 0 :(得分:2)

密码包含保留字符,因此在PHP中需要用单引号括起来而不是双引号。

答案 1 :(得分:0)

你跑了

吗?
GRANT ALL PRIVILEGES ON mydb.* TO 'username'@'%' 

或者只是一样,但@'localhost'?