mysql使用navicat远程连接时报错1251

不知道是咋了,昨天是mysql链接不上去,重装了mysql,今天又是navicat链接不上去了。报错1045,在网上找了许多方法都不行,然后我又重新安装了一遍mysql,结构还是不能登录,这次又报错1251,所以我又去查为什么报错1251,下面是我找到的方法,亲测有效!

报错:

1251 - client does not support authentication protocol requested by server;consider upgrading MySQL client

解决方法:

根据报错的字面意思:客户端不支持服务器请求的身份验证协议,可考虑升级MySQL客户端。

问题就出在用户密码上.

经查询:MySQL8.0.4以前的版本和MySQL8.0.4及以后的版本,密码认证插件有所改变,之前使用的是“mysql_native_password”,8.0.4及以后使用的是“caching_sha2_password”,

所以在修改密码的语句上,也有所不同,以前修改密码语句:

SET PASSWORD=PASSWORD('newpassword')

而现在的修改密码的语句:

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

 所以,我们可以把密码认证插件改为“mysql_native_password”,同时修改密码。

-- 命令提示符窗口登录mysql
mysql -u root -p

-- 查看用户相关信息:
/*

user: 用户名
host:允许连接的主机,%表示所有主机都可以连接
plugin:密码认证插件
authentication_string :密码,加密处理了的
*/

select host,user,plugin,authentication_string from mysql.user;

-- 修改密码认证插件为mysql_native_password,同时修改密码:我这里修改密码为root
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';

修改前:

 

修改后:

 

 再次使用navicat链接测试,显示连接成功!!!

Reference:MySQL使用Navicat远程连接时报错1251 - 落泪秋 - 博客园 (cnblogs.com)

### Navicat 连接 MySQL 误 2005 的解决方案 误 `2005 - Unknown MySQL server host` 表明客户端无法解析主机名或 IP 地址,这可能是由多种因素引起的。 #### 主机名称或IP地址不正确 如果输入的服务器地址有误,则可能导致此问题。确认所使用的主机名或 IP 是否准确无误[^1]。 #### DNS解析问题 DNS 配置不当也会引发该类误。尝试通过直接指定 IP 地址而非域名来建立连接;如果是远程服务器,请确保本地网络环境能够正常访问目标机器并能成功执行 ping 测试[^2]。 #### 网络连通性障碍 检查防火墙设置,保证端口开放状态良好,并且没有阻止来自本机或其他设备对于数据库服务端口(默认为3306)的数据传输请求。另外还需验证路由器/交换机等硬件设施工作状况稳定可靠[^3]。 #### 数据库服务未运行 确认 MySQL/MariaDB 服务正在监听相应的接口上等待接收外部链接请求。可以通过命令行工具查看服务进程是否存在以及其绑定的具体参数信息[^4]。 ```bash sudo systemctl status mysql ``` 针对上述情况采取相应措施之后再重新测试连接效果如何: - 对于本地部署的服务实例,建议先关闭所有可能干扰通信链路的因素; - 如果是在云平台上托管的应用程序,则需参照供应商文档调整安全组规则允许特定范围内的流量进出虚拟私有网卡(VPC)内部资源之间相互通讯。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值