1、起因
最近其他同事连我负责项目的服务器数据库连接时,报这个错
而我本地navacat版本为15+,mysql版本为8
2、解决思路
3、不对应的环境配置
同事电脑使用Navacat连接数据库,版本为11,同时本地mysql版本为5.7
4、解决步骤
4.1、查看服务器数据库版本
因为我本机已经连接到服务,通过新建查询,输入SELECT VERSION(),执行可以查看MySQL的版本信息
SELECT VERSION()
4.2、执行SQL查询用户信息
select host,user,plugin,authentication_string from mysql.user;
host plugin
% 表示不限制ip
localhost表示本机使用 非mysql_native_password 则需要修改密码
4.3、把mysql用户登录密码加密规则还原成mysql_native_password.
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'your_password';
错误原因是设置的初始密码过于简单,不符合当前策略
4.4、设置符合策略的初始密码
ALTER USER 'root'@'%' IDENTIFIED BY 'Aadasdasdas@qq1--x';
set global validate_password.policy=low;
ALTER USER 'root'@'%' IDENTIFIED BY '${MYSQL_PASSWORD}';
然后再执行4.3步骤中的语句即可
5、后记
通过以上操作,其他同事的低版本mysql驱动和低版本的navacat工具也可以连上数据库
另外一种解决办法就是将本地的驱动和工具版本升高