“Access denied for user ‘root’@’localhost/IP'(using password:YES)”的解决方案

“Access denied for user 'root'@'localhost/IP'(using password:YES)”的解决方案

描述

最近在连接 mysql 8.0 数据库时,遇到如下的报错信息:

Access denied for user ‘root’@’localhost/IP'(using password:YES)

上方的 localhost/IP 表示实际报出的 IP 地址。

解决

Access denied 代表访问被拒绝(IP被限制),using password: YES 代表密码是正确的。

发生这个问题的原因是在 mysql 安装之后,出于安全性考虑数据库默认只能在本地访问,根据 mysql 版本,在 MySQL Command Line 工具下修改 IP 访问策略即可。

1、mysql 8.0 以前的版本

mysql - uroot - p
--使用用户名密码登录 mysql

USE mysql; 
--使用 mysql 数据库

GRANT ALL PRIVILEGES ON *.* TO root 114.114.114.114 IDENTIFIED BY "12345678" WITH GRANT OPTION;
--假设你的用户名为 root ,密码是 12345678,那么以上语句允许 IP 为 114.114.114.114 的用户登录至数据库。

FLUSH PRIVILEGES;
--使更改生效

2、mysql 8.0 及以后的版本

mysql - uroot - p
--使用用户名密码登录 mysql

USE mysql; 
--使用 mysql 数据库

update user set host='%' where user ='root';
--更新域属性,'%'表示允许所有外部 IP 访问数据库。

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
--授权语句,授权 root 用户使用任意 IP 访问数据库。

FLUSH PRIVILEGES;
--使更改生效

本文由 .Net中文网 原创发布,欢迎大家踊跃转载。

转载请注明本文地址:https://www.byteflying.com/archives/3647

发表评论

登录后才能评论