用户名'@'localhost'(使用密码:YES)


PHP - Connection failed: Access denied for user 'username'@'localhost' (using password: YES)

我正面临这个错误。尝试了其他线程中给出的所有解决方案…创建一个新的user@localhost并赋予它特权。但是什么都不行

仍然得到这个错误.

连接失败:用户'username'@'localhost'被拒绝访问(使用密码:YES)

这是我的代码。

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "databasename";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}
else {
    echo "Connection Successful";
}
mysqli_close($conn);
?>

用户名或密码有问题

如果您使用的是windows,默认用户名是"root",密码是"(空),

可能发生两件事中的一件

  1. 您的密码不正确
  2. username未被授权访问该数据库

执行execute following query

得到的结果是什么?
FLUSH PRIVILEGES; SHOW GRANTS;

你可以在这里找到你的问题。

2016年7月4日更新

我怀疑用户的密码存储错误。尝试重置密码(您可能需要以root用户身份连接才能正常工作):

ALTER USER 'username'@'localhost'
    -> IDENTIFIED BY 'cleartext_password';

如果不工作,你可以尝试旧的语法:

SET PASSWORD FOR 'username'@'localhost' = PASSWORD('cleartext_password');

cleartext_password替换为您希望使用的密码。然后再试着连接。

它工作吗?

还是同样的问题:'(

好的,让我们从一个新的用户开始。以root用户执行以下3个命令。

CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'cleartext_password';
GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';
FLUSH PRIVILEGES;

如果所有3个命令都正确执行,接下来尝试以newuser连接到数据库。

成功了吗?如果不是,会看到什么错误?