PHP - 连接失败:访问被拒绝用户'用户名' @' localhost' (使用密码:是)

时间:2016-07-02 12:02:48

标签: php mysql mysqli database-connection

我正面临这个错误。尝试了其他线程中给出的所有解决方案......创建新用户@ localhost并为其授予权限。 但没有什么对我有用......

仍然出现错误 ..

  

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

这是我的代码..

<?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);
?>

2 个答案:

答案 0 :(得分:1)

用户名或密码错误

如果您使用的是Windows默认用户名为&#34; root&#34;和密码是&#34;&#34; (空),

答案 1 :(得分:0)

可能发生了两件事中的一件

  1. 您的密码不正确
  2. username无权访问该数据库
  3. 执行以下查询后执行的操作

    FLUSH_PRIVILEDGES; SHOW GRANTS;
    

    您可以找到your problem here

    2016年7月4日更新

    我怀疑用户的密码存储不正确。尝试重置密码(您可能需要以root用户身份连接才能使用此密码):

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

    如果这不起作用,您可以尝试使用较旧的语法:

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

    cleartext_password替换为您要使用的密码。然后尝试再次连接。

    有效吗?

      

    仍然是同一个问题:&#39;(

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

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

    如果所有3个命令都正确执行,请尝试使用newuser连接到您的数据库。

    有效吗?如果没有,你看到了什么错误?