最近在用spring boot做一个本地小项目的时候,连接本地数据库报这个错,可恶呢!
检查了一下我的JDBC url:
spring.datasource.url=jdbc:mysql://localhost:3066/zichenwuliu?useUnicode=true&characterEncoding=utf8 哇嘞,撒叉了,mysql默认端口是3306 我写成3066了,改回来重新启动,又来了:
然后我又检查了一下我的mysql的版本mysql-8.0.16-winx64,然而我的pom中的
mysql-connector-java 版本是5.1.35 升级到8.0.11 ,
spring.datasource.driverClassName = com.mysql.jdbc.Driver 升级成com.mysql.cj.jdbc.Driver
再重启,又来了:
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.
,可恶呢,百度了一下,两种办法 一个是在url后面加上时区参数:
static final String DB_URL="jdbc:mysql://localhost:3306/csm"+"?serverTimezone=GMT%2B8";
另一个是直接在myql设置时区加8小时,我采取的是第二种,在mysql客户端窗口运行:
set global time_zone='+8:00'
再次重启,成功!