设为首页 加入收藏

TOP

将MySQL从5.5.25升级到8.0.12后一些问题解决
2019-09-14 00:52:54 】 浏览:32
Tags:MySQL 5.5.25 升级 8.0.12 一些 问题 解决

将MySQL数据库从5.5.25升级到8.0.12过程中遇到几个问题,记录如下:


将数据库安装好后,导入原来的数据,启动tomcat,报错unable to load authentication  caching_sha2_plugin,解决办法如下:


  ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #修改加密规则
  ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; #更新一下用户的密码


  FLUSH PRIVILEGES; #刷新权限


网上也有说通过修改my.ini,加入


[mysqld]
default_authentication_plugin=mysql_native_password


经过我的测试,不成功,不知道为什么 。


https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-versions.html


上图显示8.0以上的connector驱动都需要JDK1.8支持,5.1.x版的驱动程序也是支持8.0.*mysql的,于是下载一个较新的mysql-connector-java-5.1.46(原来5.1.21),再次启动tomcat,无报错了!


项目运行一段时间后,又有报错:


Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre


网上查了一下,意思是5.7之后的版本默认情况下开启ONLY_FULL_GROUP_BY SQL模式,会导致这个问题,修改my.ini,加入


[mysqld]
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION


也就是去掉sql_mode中的ONLY_FULL_GROUP_BY,然后重启mysql,重启TOMCAT,项目运行正常了。


网上有说通过set @@sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'修改全局设置的,经我测试不能成功,有人说全局设置只对后来新建的数据库有效。我没有验证。有知道的请留言!


总结就是:生产环境下,不要轻易变更版本!


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Redis常见面试题分享 下一篇MySQL实时增量备份

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目