MySQL8.0.16与Navicat10.0兼容性问题
今天在使用Navicat10.0连接MySQL8.0时出险ERROR 1251错误,后经核实自MySQL8.0开始,加密插件由mysql_native_password
改为caching_sha2_password
,导致Navicat部分历史版本无法链接数据库。
解决办法
- 使用最新版本的Navicat适应新变化,也更加安全
- 使用旧版本,但需将插件改为
mysql_native_password
,此举会降低安全性,需要执行的语句如下:
/*---------用户名--host地址----------------------------------------密码*/
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
/*立即刷新,是修改立即生效*/
FLUSH PRIVILEGES;
MySQL8.0.16 延申
自MySQL8.0.16开始,MySQL新增SYSTEM_USER
权限,用以区分系统用户与普通用户:
- 拥有
SYSTEM_USER
权限的用户就是系统用户 - 不拥有
SYSTEM_USER
权限的用户就是普通用户 - 其中只有拥有
SYSTEM_USER
权限的用户才可以对同样具有SYSTEM_USER
权限的用户就行修改,否则即使是root
用户也不能对其进行修改(请注意,root
开始并没有此权限)- 使用普通用户修改系统用户信息时,经返回you need (at least one of) the SYSTEM_USER privilege(s):解决方案为:
- 对root用户授予此权限:grant system_user on . to root;
- 使用普通用户修改系统用户信息时,经返回you need (at least one of) the SYSTEM_USER privilege(s):解决方案为: