0

我让 phpMyAdmin 与 MAMP 一起运行,但我发现无法使用 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);

欢迎任何建议。谢谢!

4

5 回答 5

4

假人的错误消息:

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

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

  1. 拒绝访问- 简而言之,这意味着:迷路!不要试图连接到我。
  2. 对于用户 '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'需要使用密码才能访问。正如错误消息告诉您的那样,您没有使用密码。所以这很可能是错误的原因,密码丢失。

添加密码并重试。

于 2012-04-11T13:23:03.140 回答
3

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

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

$_db_connect = mysql_connect("localhost", "root", "root");
于 2012-04-11T13:24:59.583 回答
1

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

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

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

于 2012-04-11T13:20:10.693 回答
1

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

$_db_connect = mysql_connect("localhost", "root", "password");
于 2012-04-11T13:21:10.477 回答
1

mysql_connect 函数中的第一个参数是数据库主机,您需要使用 3 个参数 - 使用密码。

所以使用这个语法:

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

于 2012-04-11T13:22:19.357 回答