我让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)
它由三部分组成,每个部分都包含重要信息。我看看:
- 访问被拒绝 - 简而言之,这意味着:迷路!不要试图连接到我。
- 对于用户"root"@"localhost" - 表示谁被拒绝访问,该用户。名称:根,在 (@) 以下服务器:本地主机。
- 使用密码:否 - 只是一些不错的附加信息,在尝试访问和提供用户名时,没有使用密码。
因此,现在使用您拥有的特权:
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');