1
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 Error: Access denied for user 'root'@'localhost' (using password: YES)

4

3 回答 3

2

您有“root [SPACE]”作为用户名。在没有空格的情况下尝试“root”?

于 2012-06-20T04:24:49.143 回答
1

您的凭据有问题。

验证:

  • 用户名
  • 密码
  • 主持人

另外,请停止使用mysql_*功能,因为它们现在已弃用。请改用MySQLiPDO

于 2012-06-20T03:52:42.267 回答
0

你的连接应该是这样的

$link = mysql_connect('127.0.0.1:3307', 'mysql_user', 'mysql_password');

不包括http,在例子中添加端口号,检查用户名和密码。

如果会惹恼您,但每次使用 mysql_* 函数时,您都会得到 PDO 推荐。我也推荐 PDO,PHP 也推荐 PDO,你可以查看PHP Documentation for mysql_connect

于 2012-06-20T03:58:13.923 回答