mysql_connect() 始终拒绝访问


mysql_connect() always denies access

我让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

使用授权选项将"@"上的代理授予"根"@"本地主机"

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

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

欢迎任何建议。 谢谢!

傻瓜的错误消息:

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

它由三部分组成,每个部分都包含重要信息。我看看:

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

添加密码,然后重试。

你忘了输入密码。如果我猜对了,那么哈希81F5E21E35407D884A6CD4A731AEBFB6AF209E1B密码"root"(确认输入此SQL语句:SELECT PASSWORD('root')

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

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

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

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

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

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

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

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

所以请使用以下语法:

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