PHP - MySQL访问被拒绝错误 - 适用于其他程序


PHP - MySQL access denied error - Works in other programs

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