轉自:https://www.cnblogs.com/alsf/p/9346921.html
這次新安裝了一個MySQL數據庫,然后navicat連接數據庫一點問題沒有。
但是通過Java的jdbc連接卻怎么都建立不了連接。
報如下錯:
網上找了很久找到了原因:
數據庫用的是Mysql8版本,但工程里面mysql驅動包卻是5.1.37版本。只需修改驅動包為8.0.11版本即可。
而且驅動的包也改變了,由原來的:/generatorSqlmapCustom/lib/mysql-connector-java-5.1.28-bin.jar
換成了:mysql-connector-java-8.0.11.jar
結構:
換成了:
因此Mysql8.0連接JDBC驅動需要注意以下幾點:
1,驅動的類換了個名字
Class.forName("com.mysql.cj.jdbc.Driver");
加上useSSL=true或false
con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test?useSSL=true", "root", "123456");
加上serverTimezone=GMT
con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test?useSSL=true&serverTimezone=GMT", "root", "123456");
如果是maven引入,則需要由:
<!-- mysql --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.37</version> </dependency>
改為:
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.11</version> </dependency>
在mybatis逆向工程里面配置改成如下:
<!--數據庫連接的信息:驅動類、連接地址、用戶名、密碼 --> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/taobao" userId="root" password="aaaaaa"> </jdbcConnection>