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


connecting to MySQL database through PHP access denied

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

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

您需要执行以下检查:

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

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

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

我之前收到 mysql 错误消息"用户访问被拒绝..."

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

另外,要弄清楚您的 mysql 虚拟主机和端口,请在您的数据库上执行 sql 命令"显示变量"。 变量"主机名"和"端口"将告诉您有关 MySQL 数据库连接需要了解的内容。

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