Mysql8.0遇到的天坑

在SSM项目开发中,使用MySQL8.0遇到包括密码更改问题、时区错误、'tx_read_only'变量未知异常和驱动兼容性问题等挑战。通过特定的SQL命令和更新JDBC驱动版本,成功解决了这些问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.在开发SSM项目的时候,使用Mysql 8.0遇到的坑

①首先是遇到MySQL8.0的密码问题,navicat连接mysql时报错 Client does not support authentication protocol 错误 ,根据百度的好几种方法都不行,最后找到合适的了,记录一下mysql8.0改密的方式:

1、use mysql;
2、alter user ‘root’@‘localhost’ identified with mysql_native_password by ‘新密码’;
3、flush privileges;
如下图:
在这里插入图片描述
②第二个是运行Mysql时出现如下错误:
在这里插入图片描述
也许你怎么也想不到,这个错误仅仅是因为时区的问题!!!!

因此使用root用户登录mysql,将时区更改为北京时区即可

 show variables like '%time_zone%';

 set global time_zone='+8:00';
 
 修改时区后,上述问题居然神奇的解决了

③第三个问题:Caused by: java.sql.SQLException: Unknown system variable ‘tx_read_only’

异常产生原因:
1.JDBC驱动版本过低
2.数据库版本过低
于是,我将驱动换成最高版的,引入pom文件依赖后,问题解决。

④第四个问题:使用Mysql 8.0 需要将驱动 com.mysql.jdbc.Driver改为com.mysql.cj.jdbc.Driver以及在pom.xml文件中引入版本相同的依赖包。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值