远程连接mysql8.0,Error No.2058 Plugin caching_sha2_password could not be loaded
!!!!!!操作之前确保 云服务器的防火墙和操作系统的防火墙的 3306 端口号 都放行了
通过本地去连接远程的mysql时报错,原因时mysql8.0的加密方法变了。
mysql8.0默认采用caching_sha2_password的加密方式
第三方客户端基本都不支持这种加密方式,只有自带的命令行支持
所以需要修改加密方式。
首先进入mysql命令行
[root@localhost ~]# mysql -u root -p
Enter password:
再选择数据库为 mysql
-- 进入名为 mysql 数据库
use mysql
第一步:看看有没有 用户名为 root ,host 为 % 的对象,
-- 查询用户
select user,host,password from user;
没有就创建
GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root"; //为root添加远程连接的能力
第二步:修改加密方式(‘Qigaoxiang2018@’ 这个是密码)
ALTER USER'root'@'localhost' IDENTIFIED BY 'Qigaoxiang2018@' PASSWORD EXPIRE NEVER;
第三步:重新修改密码(‘Qigaoxiang2018@’ 这个是密码)
ALTER USER'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Qigaoxiang2018@';
MySQL版本 5.6 另一种方式修改密码
update user set Password = password('Qigaoxiang2018@') where User = 'root';
这里如果出现 1396 的错误就
-- 进入名为 mysql 数据库
use mysql
-- 查询用户
select user,host,password from user;
看看有没有 用户名为 root ,host 为 % 的对象,没有就填写已有的 用户名和 host。
第四步:刷新(不做可能无法生效)
FLUSH PRIVILEGES;
之后可以成功连接。
1130 - Host XXX is not allowed to connect to this MySQL server 错误提示的解决办法。
1、用Navicat Premium 12连接服务器的数据库时报错
报错原因:此时的MySQL配置不支持远程连接 。
解决:修改配置,使之支持远程连接。
2、登陆服务器,进入数据库
mysql -uroot -p密码
查看数据库用户
show databases;
3、切换用户,查看配置
执行命令
use mysql;
select host from user where user='root';
看到如图所示的配置:localhost
4、修改配置
执行如下命令
update user set host = '%' where user ='root';
解释:将localhost设置为通配符%。
localhost设置了“%”后便可以允许远程访问。
5、使配置生效
localhost修改完成后执行以下命令使配置立即生效。
flush privileges;
然后在查看配置
select host from user where user='root';
已成功修改,这个时候就可以连接了。