通过PHP访问拒绝连接到MySQL数据库

时间:2012-05-03 13:10:46

标签: 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和portnumber以及数据库名称是正确的。我设法使用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 />


3 个答案:

答案 0 :(得分:4)

您需要进行以下检查:

  1. 检查/ etc / hosts中是否包含192.168.1.1。如果您的数据库位于localhost计算机上,请尝试使用localhost而不是ip。
  2. 检查端口是否打开。尝试使用telnet(例如ip / localhost)  。例如telnet localhost 2222
  3. 检查数据库是否具有用户名和密码的授予权限。要检查权限,请使用SHOW GRANTS [FOR user]。可以找到更多信息here 如果这些都不起作用,也许尝试使用默认用户以外的其他用户 让我们知道会发生什么

答案 1 :(得分:3)

您可能已成功使用相同的用户名/密码从phpmyadmin登录,但如果主机不是localhost,则无法从php登录。我有同样的问题。转到mysql并授予该用户从所有主机(%)或您运行php代码的特定主机IP登录的权限。

答案 2 :(得分:1)

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

我之前收到了mysql错误消息“用户拒绝访问...”

我在php中的远程访问问题的解决方案是授予对cPanel'%'中所有主机的访问权限

另外,要弄清楚你的mysql webhost和端口,请在数据库上执行sql命令'show variables'。变量'hostname'和'port'将告诉你需要知道的mysql数据库连接。

需要注意的另一件事是确保您创建的用户实际上已添加到数据库中。