文章目录
- 报错信息
- 1、驱动包问题
- 2、高版本驱动类名称问题
- 3、url 时区问题
- 4、驱动包位置问题
环境:
- 操作系统:windows 10
- seata版本:seata-server-1.6.1
- 数据库版本:mysql 8.0.33
报错信息
seata启动报错com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server
由于使用的是mysql8+,出现连接不上的情况,首先就想到了驱动版本的问题。主要问题有以下几点:
1、驱动包问题
查看 seata\lib\jdbc下的jar包,发现没有我安装的数据库版本,开始以为是这个版本问题。从 mysql官网 下载对应的版本。启动seata server依然报错。说明不是这个问题,后面我将低版本的jar按照正确的方式启动,发现可以启动成功。jar包的主要问题是存放位置的问题,最后一步解决
2、高版本驱动类名称问题
mysql高版本的driverClassName的值由com.mysql.jdbc.Driver变为com.mysql.cj.jdbc.Driver
# 该配置为seata\conf\application.yml
driverClassName = "com.mysql.cj.jdbc.Driver"
3、url 时区问题
连接的url后面参数也有问题,seata的初始值是没有时区编码这些参数的,高版本的mysql要求必须带这些参数。
# 该配置为seata\conf\application.yml
jdbc:mysql://127.0.0.1:3306/seata?rewriteBatchedStatements=true&serverTimezone=GMT%2b8
4、驱动包位置问题
下载对应我数据库版本的jar后放在seata\lib\jdbc下,启动seata server成功。
application.yml 文件中的配置如下:
成功启动
查看nacos中的服务