MySQL8.0的坑-个人实践

    今天,自己作死,往自己笔记本上装了一个mysql的8.0版本,由于公司项目使用的是其他版本,故爬坑到现在,网上查到的解决方案都太零散了,所以在这里做个汇总,希望对需要的朋友有用。个人文采有限,凑活看吧。哈哈。。。。。

   首先,刚开始项目报直接报错,Could not retrieve transation read-only status server

   这个错误,首先查看mysql数据库的事务隔离级别:

   SHOW VARIABLES LIKE 'transaction_isolation';

   如果返回结果为

 REPEATABLE-READ

则执行

SET GLOBAL transaction_isolation='READ-COMMITTED';  -- 修改数据库的隔离级别。
set session transaction isolation level read uncommitted; --提交数据库的当前session的事务。

如下图所示:

MySQL8.0的坑-个人实践_第1张图片

如果要永久更改,则还需修改my.ini,在后面追加:

#可选参数有:READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ, SERIALIZABLE.
transaction-isolation = READ-COMMITTED

如下图所示:

MySQL8.0的坑-个人实践_第2张图片

做完以上步骤,如果项目还报以上错误,则检查mysql驱动包,mybatis的版本:

8.0.13

3.2.8

1.3.1

修改完以上版本后,则可能报如下错误信息:

原因:数据库驱动com.mysql.jdbc.Driver'已经被弃用了、应当使用新的驱动com.mysql.cj.jdbc.Driver'

需要修改jdbc驱动为:

将jdbc.properties配置 .com.mysql.jdbc.Driver  改为  com.mysql.cj.jdbc.Driver

修改完成后,启动项目,继续报如下错误信息:

Error querying database.  Cause: java.sql.SQLException: The server time zone value '�й���׼ʱ��' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.

在jdbc.url后面追加:

&serverTimezone=GMT%2B8&useSSL=false

ok     到这里,鄙人项目启动成功,这些错误的根本原因,这里就不在详细描述了,大家可以去网上查找相关资料,鄙人水平有限,了解到的就这么多,有不对的地方,欢迎大家纠正。

 

 

你可能感兴趣的:(mysql)