使用单元测试测试SpringBoot应用时,抛出
JAVA.SQL.SQLNONTRANSIENTCONNECTIONEXCEPTION: COULD NOT CREATE CONNECTION TO DATABASE SERVER. ATTEMPTED RECONNECT 3 TIMES. GIVING UP.异常。
经过查找,发现是配置中mysql中url有问题。
解决:
经过修改
把
jdbc.url=jdbc:mysql://localhost:3306/news?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=true
改为
jdbc.url=jdbc:mysql://localhost:3306/news?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC
原因:
mysql8.x的jdbc升级了,增加了时区(serverTimezone)属性,并且不允许为空。
我MySQ是8.0.19版本,在配置jdbc的url时,必须在数据库名后面加上serverTimezone参数,也就是
jdbc:mysql://localhost:3306/数据库名?serverTimezone=Asia/Shangha
注意:设置serverTimezone=UTC,和中国时间相差8小时