mysql8无法用navicat连接(mysql8加密方式的坑)
关键词:mysql8无法用navicat连接,navicat无法连接mysql8,mysql8,mysql8的加密方式
【1】mysql8 的坑 密码加密规则
在MySQL 8.0.以上版本中,caching_sha2_password是默认的身份验证插件,而不是以往的mysql_native_password。
有关此更改对服务器操作的影响以及服务器与客户端和连接器的兼容性的信息,请参阅caching_sha2_password作为首选的身份验证插件。
(翻译自https://dev.mysql.com/doc/refman/8.0/en/caching-sha2-pluggable-authentication.html)
#如果您还没有配置,那么在配置文件中可以修改,修改配置文件并重启Mysql服务后,新建的用户就可以远程连接了。但现有用户仍然无法远程连接
[mysqld]
# 默认使用 mysql_native_password 插件认证
default_authentication_plugin=mysql_native_password
【2】远程无法连接
问题:创建好用户后,用windows系统本地开发环境 的 Navicatmysql 连接数据库, 提示密码错误。
后来查到是加密方式问题。
解决办法
(1)推荐使用
-- 如果是现有用户
alter user '用户名'@localhost IDENTIFIED WITH mysql_native_password by '你的密码';
改为5.X 版本的 mysql_native_password , 但没有重新改用户密码,导致代码一直连接不上, 用 mysql_native_password 再更改一次密码搞定。
-- 如果是新建用户
create user 'root'@'%' identified with mysql_native_password by '你的密码'
【3】5.X版本与8.X版本的创建用户方式
5.X 版本添加用户和授权可以同时进行: grant select,delete,insert,update on dbname.* to username@‘localhost’ identified by ‘password’; 一句话搞定。
8.X 版本要先 创建用户, 再grant
create user username identified by ‘password’; (坑在这里,默认密码加密方式跟5不一样了 )
grant select,delete,insert,update on username@‘localhost’;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南