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)