SQLSTATE[HY000] [1045] 用户'root'@'localhost'的访问被拒绝(使用密码:YES)?

Posted

技术标签:

【中文标题】SQLSTATE[HY000] [1045] 用户\'root\'@\'localhost\'的访问被拒绝(使用密码:YES)?【英文标题】:SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: YES)?SQLSTATE[HY000] [1045] 用户'root'@'localhost'的访问被拒绝(使用密码:YES)? 【发布时间】:2020-08-20 12:16:10 【问题描述】:

.env 文件

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=task
DB_USERNAME=root
DB_PASSWORD=******

所有数据库列表 mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | nodeDB | | performance_schema | | phpmyadmin | | pythonDB | | sys | | task | +--------------------+ 8 rows in set (0.13 sec)

已经尝试过这些解决方案

SQLSTATE[HY000] [1045] Access denied for user 'username'@'localhost' (using password: YES)

Access Denied for User 'root'@'localhost' (using password: YES) - No Privileges?

【问题讨论】:

您创建了数据库task 吗?另外请检查用户名和密码是否正确有效。 是的,我已经使用cmd创建了任务数据库。 尝试使用用户名和密码进入mysql。 mysql -u root -p 并输入密码。检查凭据是否确实有效。 您的密码有特殊字符吗?换个简单的密码试试,看看是不是密码问题。 我使用的是ubuntu,我可以使用“sudo mysql”进入,但是使用“mysql -u root -p”无法进入 【参考方案1】:

如果您能够登录到 mysql 控制台。然后尝试通过以下命令打印 Mysql 用户。

SELECT user,authentication_string,plugin,host FROM mysql.user;

如果您发现root 有一个auth_socket 类型的插件,那么您需要通过以下命令将其更改为mysql_native_password

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

不要忘记将password 替换为您的密码。

然后使用FLUSH PRIVILEGES; 刷新权限

或者,您可以创建另一个用户并授予权限。

CREATE USER 'ankush'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'ankush'@'localhost' WITH GRANT OPTION;

【讨论】:

以上是关于SQLSTATE[HY000] [1045] 用户'root'@'localhost'的访问被拒绝(使用密码:YES)?的主要内容,如果未能解决你的问题,请参考以下文章

(“SQLSTATE [HY000] [1045] 用户'root'@'localhost'的访问被拒绝(使用密码:NO)”)

SQLSTATE[HY000] [1045] 用户'root'@'localhost'的访问被拒绝(使用密码:YES)?

SQLSTATE[HY000] [1045] 使用 Docker 拒绝用户 'root'@'172.19.0.4' 的访问

PHP SQLSTATE[HY000] [1045] 用户 Laravel 访问被拒绝

WHM mysql“SQLSTATE [HY000] [1045] 用户访问被拒绝”

QueryException SQLSTATE[HY000] [1045] 用户'homestead'@'localhost'的访问被拒绝(使用密码:YES)