mysql8无法用navicat连接(mysql8加密方式的坑)

MySQL8默认使用caching_sha2_password加密导致Navicat无法连接。解决方案包括修改配置文件以使用mysql_native_password插件,或通过SQL命令alteruser将用户身份验证更改为mysql_native_password,并重置密码。创建新用户时也需要注意选择合适的加密方式。

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

关键词: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’;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值