Access denied for user 'root '@'localhost' (using password: YES)
是的,这个错误太常见了,我花了很多时间研究它。 然而,没有什么能解决问题。
在我正在开发的一个 PHP 脚本中尝试第一次连接时,我收到此错误。 如果它有助于知道,我正在运行Linux Mint,并在安装了 http://community.linuxmint.com/tutorial/view/486 中详细介绍了LAMP配置。
问题是,任何其他应用程序都可以连接。 无论是以root身份登录PhpMyAdmin还是以root身份登录控制台上的mysql客户端都可以完美地工作。 MySQL 网站本身说这可能是我的代码有问题,但我还没有弄清楚......我对这个东西有点陌生,所以如果这是一个非常愚蠢的错误,请原谅我。
我正在其他页面上使用外部函数(使用 require_once 导入)。这是一种不好的做法吗?无论如何,这里是:
global $sql_conn, $sql_addr, $sql_user, $sql_pass, $sql_datb;
$config=app_readconfig();
echo "<p>".$sql_addr." ".$sql_user." ".$sql_pass." ".$sql_datb."</p>";//DEBUG, shows values are read
if($config==FALSE)
{
echo "<p>Error: Missing values in darkace_config.txt!</p>";
return FALSE;
}
$sql_conn=mysql_connect($sql_addr,$sql_user,$sql_pass);
if(!$sql_conn)
{
echo "<p>MYSQL Error: ".mysql_error()."</p>";
return FALSE;
}
if(!mysql_select_db($sql_datb,$sql_conn))
{
echo "<p>MYSQL Error selecting database: ".mysql_error()."</p>";
return FALSE;
}
return TRUE;
调用该函数,返回的消息是: MYSQL 错误:用户"根"@'本地主机"的访问被拒绝(使用密码:是)
你有'root[SPACE]'作为用户名。尝试没有空格的"根"?
您的凭据有问题。
验证:
- 用户名
- 密码
- 主机
另外,请停止使用 mysql_*
函数,因为它们现已弃用。请改用MySQLi或PDO。
你的连接应该是这样的
$link = mysql_connect('127.0.0.1:3307', 'mysql_user', 'mysql_password');
不要包含HTTP,添加端口号,如示例中,检查用户名和密码。
如果会惹恼你,但每次你使用 mysql_* 函数时,你都会得到一个 PDO 建议。我也推荐PDO,PHP也重新评论PDO,你可以查看PHP文档mysql_connect