【问题标题】:mysql_connect() always denies accessmysql_connect() 总是拒绝访问
【发布时间】:2012-04-23 19:14:56
【问题描述】:

我使用 MAMP 运行 phpMyAdmin,但我发现无法使用 mysql_connect()。

$_db_connect = mysql_connect("root", "localhost");

在 php_error.log 中产生错误:mysql_connect() [<a href='function.mysql-connect'>function.mysql-connect</a>]: Access denied for user 'root'@'localhost' (using password: NO) in /....../common.lib.php on line 19

我已经查看了权限:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*81F5E21E35407D884A6CD4A731AEBFB6AF209E1B' WITH GRANT OPTION

GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION

我简直被难住了。我创建了带有密码的新用户只是为了获得相同的结果。奇怪的是,它总是说 (using password: NO),即使我尝试以用户身份使用密码连接:

$_db_connect = mysql_connect(MYSQL_HOST, MYSQL_USERNAME, MYSQL_PASSWORD);

欢迎任何建议。谢谢!

【问题讨论】:

标签: php mysql phpmyadmin mamp mysql-connect


【解决方案1】:

您在函数中缺少密码。此外,函数调用是错误的。这样做:

$_db_connect = mysql_connect("localhost", "root", "password");

其中,password 是您的 root 帐户的密码。可能会有所不同。

【讨论】:

  • 我已经尝试过了,正如我在原始帖子中所说的那样。另外,我的 root 帐户没有密码。
  • 但错误声明指出:'*81F5E21E35407D884A6CD4A731AEBFB6AF209E1B' 作为您的 root 密码(显然已加密)。
【解决方案2】:

传递密码,作为第三个参数

$_db_connect = mysql_connect("localhost", "root", "password");

【讨论】:

    【解决方案3】:

    mysql_connect 函数中的第一个参数是 db host,您需要使用 3 个参数 - 才能使用密码。

    所以使用这个语法:

    $db = mysql_connect('localhost', 'mysql_user', 'mysql_password');

    【讨论】:

      【解决方案4】:

      傻瓜的错误信息:

      Access denied for user 'root'@'localhost' (using password: NO)
      

      它分为三个部分,每个部分都包含重要信息。让我们看看:

      1. 拒绝访问 - 简单来说,这意味着:迷路!不要尝试连接到我。
      2. for user 'root'@'localhost' - 表示谁被拒绝访问,那个用户。名称:root,在 (@) 以下服务器:localhost。
      3. 使用密码:否 - 只是一些很好的附加信息,当尝试访问并提供用户名时,没有使用密码。

      那么现在就使用你拥有的权限吧:

      GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost'
       IDENTIFIED BY PASSWORD '*81F5E21E35407D884A6CD4A731AEBFB6AF209E1B'
       WITH GRANT OPTION
      GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION
      

      它基本上说,用户'root'@'localhost' 需要使用密码才能访问。正如错误消息告诉您的那样,您没有使用密码。所以这很可能是错误的原因,密码丢失。

      添加密码并重试。

      【讨论】:

        【解决方案5】:

        您忘记输入密码了。如果我猜对了,那是哈希 81F5E21E35407D884A6CD4A731AEBFB6AF209E1B 密码“root”(确认输入此 SQL 语句:SELECT PASSWORD('root')。

        尝试使用正确的密码登录:

        $_db_connect = mysql_connect("localhost", "root", "root");
        

        【讨论】:

          猜你喜欢
          • 2013-09-17
          • 1970-01-01
          • 1970-01-01
          • 2017-07-10
          • 1970-01-01
          • 2019-09-26
          • 1970-01-01
          • 2015-05-27
          • 1970-01-01
          相关资源
          最近更新 更多