在IDEA中,进行mybatis逆向工程生成代码时,出现了一些令人苦恼的问题,老是连接出现问题,然而Navicat却是可以正常连接MySql8.0.11的,经过不断的尝试,终于解决了问题。
0、其实一开始安装好Navicat创建数据库连接,点击连接测试测试时,就出现了问题:1251- Client does not support authentication protocol。
网上百度了下:
原因:mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password。
解决方案:方法1.升级navicat驱动。
方法2.把mysql用户登录密码加密规则还原成mysql_native_password。
WIN+R,cmd,然后输入mysql -u root -p,输入密码,
ALTER USER ‘root‘@‘localhost‘ IDENTIFIED BY ‘password‘ PASSWORD EXPIRE NEVER; #修改加密规则
ALTER USER ‘root‘@‘localhost‘ IDENTIFIED WITH mysql_native_password BY ‘password‘; #更新一下用户的密码
FLUSH PRIVILEGES; #刷新权限
Navicat重新连接,就能成功了。
1、Could not create connection to database server. Attempted reconnect 3 times. Giving up
这是出现的第一个错误,数据库连接都无法创建,首先进行确认连接地址、用户名和密码是否正确
,
确认无误后,网上找到问题说可能是jdbc-connector的jar包版本的问题,于是就将jar包版本升级了下
,试了2次之后,又出现了其他问题。。。。。。
2、出现连接数据库地址权限问题,百度下可以找到解决方案,为MySql访问权限中添加客户端ip地址。
3、Unknown initial character set index ‘255‘ received from serve.Initial client character set can be forced via the ‘characterEncoding‘ property.。
这是出现的最后一个问题,我在jdbcConnection的connectionURL的后面添加了“?useUnicode=true&useSSL=false&autoReconnect=true&characterEncoding=UTF-8”,就解决了。
总结:其实还有关于MySql的SSL的配置问题没有写,这是在查找问题的时候看到的,顺便了解了下,是关于MySql数据加密相关的,下次有空可以深入学习配置下,另外,解决问题的过程中不要急躁,要耐心,总有解决的时候,虽然花了很长的时间。
原文:https://www.cnblogs.com/pp153/p/9097891.html