mysql 远程连接 问题

本文介绍如何解决远程连接MySQL8.0时遇到的ErrorNo.2058错误,涉及修改加密方式及更新用户权限等步骤,适用于MySQL8.0版本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

远程连接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';

已成功修改,这个时候就可以连接了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值