-1

我在尝试连接到数据库时收到“拒绝访问错误”。这是代码:

    <?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 />


4

3 回答 3

4

您需要进行以下检查:

  1. 检查 192.168.1.1 是否包含在 /etc/hosts 中。如果您的数据库在 localhost 机器上,请尝试使用 localhost 而不是 ip。
  2. 检查端口是否打开。尝试使用 telnet(例如 ip/localhost)。例如远程登录 localhost 2222
  3. 检查数据库是否具有您的用户名和密码的授予权限。要检查权限,请使用SHOW GRANTS [FOR user]. 更多信息可以在这里找到 如果这些都不起作用,也许尝试使用默认用户以外的其他用户。
    让知道会发生什么
于 2012-05-03T13:25:43.023 回答
3

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

于 2012-05-03T13:15:07.350 回答
1

Gavriel,你救了我一个受伤的世界。

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

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

此外,要找出您的 mysql 虚拟主机和端口,请在您的数据库上执行 sql 命令“显示变量”。变量 'hostname' 和 'port' 会告诉你 mysql 数据库连接需要知道的内容。

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

于 2012-07-11T12:03:34.180 回答