出现问题背景:
1.springboot项目,springboot版本为2.2.4
2.在pom.xml中配置mysql连接jar时我没有指定版本。
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency>
3.然后application.yml中配置mysql连接时,使用的驱动和url为:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/scs?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8&useSSL=false
我把项目打包成war,然后放入阿里云服务器的tomcat的webapp文件夹下,访问项目时就报标题中的错。然后我查询了下其他人的情况,发现是我的阿里云服务器中安装的mysql版本和这个驱动、pom中mysql的jar版本不匹配。
com.mysql.cj.jdbc.Driver是mysql6.0以后的使用的,而我的mysql为5.1,而pom中我未指定mysql的jar包版本,springboot自动默认的版本不匹配我的mysql5.1
所以解决方法如下:
1.使用com.mysql.jdbc.Driver驱动,url中erverTimezone=GMT%2B8这部分可以去掉,这是指定mysql时区的
2.pom中给mysql-connector-java添加版本5.1.30,为啥用这个版本呢,因为其他项目中这个版本我确定能使用。
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.30</version>
<scope>runtime</scope>
</dependency>