首页 / MYSQL / Jdbc连接MySQL 8时报错“MySQLNonTransientConnectionException: Public Key Retrieval is not allowed”
Jdbc连接MySQL 8时报错“MySQLNonTransientConnectionException: Public Key Retrieval is not allowed”
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Jdbc连接MySQL 8时报错“MySQLNonTransientConnectionException: Public Key Retrieval is not allowed”,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1866字,纯文字阅读大概需要3分钟。
内容图文
![Jdbc连接MySQL 8时报错“MySQLNonTransientConnectionException: Public Key Retrieval is not allowed”](/upload/InfoBanner/zyjiaocheng/501/0f5af4c9104c412bb066be8aa5f0fc6c.jpg)
一、问题
因停电检修,今天重启服务器后,再启动jboss就报错“MySQLNonTransientConnectionException: Public Key Retrieval is not allowed”,jboss无法获取对数据源的JDBC连接。
二、解决过程
百度一下,先说是旧版JDBC驱动的bug,于是从maven中央库下载最新的mysql-connector-8.0.11.jar,替换后修改jboss的modle说明、将配置文件中的driver-class改为‘com.mysql.cj.jdbc.Driver‘,但错误依旧。随后发现8.0.11版与hibernate不匹配,又改回原来的5.1.46。
继续百度,说是需修改default_authentication_plugin设置,于是修改my.ini,增加[mysqld] default_authentication_plugin=mysql_native_password,重启mysql 8,错误依旧。
继续百度,说是仍需修改用户的密码加密方式,于是在mysql命令行执行:ALTER USER ‘myuser‘@‘localhost‘ IDENTIFIED WITH mysql_native_password BY ‘mypassword‘;,这次虽仍报错,但错误提示变成“InvalidConnectionAttributeException: The server time zone value ‘<乱码>‘ is unrecognized or represents more than one time zone. ……”。
继续百度,说是在jdbc连接串需指定time zone,于是修改jboss配置文件中的connection-url,在最后增加serverTimezone=Asia/Shanghai,重启jboss,终于过关。
三、总结
- 更换mysql的jdbc驱动,但其实从 5.1.37已经更新过这个bug,一般不需要;
- 修改my.ini(Linux则是my.cnf),增加[mysqld] default_authentication_plugin=mysql_native_password;
- 在mysql命令行执行:ALTER USER ‘myuser‘@‘localhost‘ IDENTIFIED WITH mysql_native_password BY ‘mypassword‘;
- 在jdbc连接串指定time zone。
四、疑问
问题虽然解决了,但仍存在几个疑问:
- 为什么停电重启前一切正常?
- 为避免SSL,配置文件中的connection-url中加了useSSL=false,难道与这有关系?
Jdbc连接MySQL 8时报错“MySQLNonTransientConnectionException: Public Key Retrieval is not allowed”
标签:default oca ini mysq 服务 linux 密码加密 shanghai jdb
本文系统来源:https://www.cnblogs.com/jpfss/p/9745600.html
内容总结
以上是互联网集市为您收集整理的Jdbc连接MySQL 8时报错“MySQLNonTransientConnectionException: Public Key Retrieval is not allowed”全部内容,希望文章能够帮你解决Jdbc连接MySQL 8时报错“MySQLNonTransientConnectionException: Public Key Retrieval is not allowed”所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。