2012-05-03 84 views
0

,我发现了“拒绝访问错误尝试连接到数据库。这里是代码:通过PHP访问连接到MySQL数据库否认

<?php 
    mysql_connect("00.00.00.00:00000","user","pass"); 
    mysql_select_db("dbname"); 

    $q=mysql_query("CALL GetMaterialInfo('".$_REQUEST['user']."','".$_REQUEST['pass']."','6c3e91d3')"); 
    while($e=mysql_fetch_assoc($q)) 
     $output[]=$e; 

    print(json_encode($output)); 

    mysql_close(); 
    ?> 

我改变了主持人的IP地址(它不是全部为零)以及用户名和密码以及数据库名称。我确定用户和密码,例如主机IP和端口号以及数据库名称是正确的。我设法连接到数据库,媒体链接使用JDBC连接器,但它给通过PHP脚本以下错误:

<b>Warning</b>: mysql_connect() [<a href='function.mysql-connect'>function.mysql-connect</a>]: Access denied for user 'username'@'192.168.1.1' (using password: YES) in <b>/www/zxq.net/t/e/s/testphpbach/htdocs/Connection.php</b> on line <b>2</b><br /> 


+0

你有在/ etc为192.168.1.1进入/主机 – Satya

+2

您是*不使用从您的主机的正确的用户名和密码,*或*用户不允许访问*。这是一个配置问题,错误信息告诉你你需要知道的一切。 – hakre

+0

您要么未使用正确的用户名和密码,要么所选用户名无法访问该主机 – Anigel

回答

3

你可能从phpMyAdmin的相同用户名/密码登录成功,但能如果主机不是本地主机,请从PHP登录。我有同样的问题。转到mysql并授予该用户的权限,以便从所有主机(%)或您运行php代码的特定主机的IP上登录。

4

你需要做以下检查:

  1. 检查192.168.1.1包括在/ etc/hosts中。如果您的数据库位于本地主机上,请尝试使用localhost而不是ip。
  2. 检查该端口是开放的。尝试使用telnet(例如ip/localhost) 。例如远程登录本地主机2222
  3. 检查数据库已为您的用户名和密码授予的权限。要检查权限,请使用SHOW GRANTS [FOR user]。更多信息可以发现here 如果没有这项工作,也许尝试使用非默认的其他不同的用户。
    让我们知道会发生什么
1

加夫列尔,你救了我一个伤害的世界。

我以前得到MySQL错误信息“访问被拒绝用户......”

在PHP我的远程接入问题的解决方案是允许访问中的所有主机的cPanel“%”

另外,为了找出你的mysql虚拟主机和端口,在你的数据库上执行sql命令'show variables'。变量'主机名'和'端口'会告诉你你需要知道的mysql数据库连接。

另外一点需要注意的是要确保你已经创建实际上是添加到数据库的用户。