今天用JDBCTemplate時,發現啟動服務器之后報錯: Could not get JDBC Connection; nested exception is java.sql.SQLException: Unknown system variable 'tx_isolation'。
網上說是因為MySQL版本過高的問題,我的MySQL版本是8.0,里面已經沒有tx_isolation,變成了transaction_isolation,用了以下幾種解決方法:
(1)更改MySQL
無效,仍然報錯!
(2)將mysql-connector-java升級為與MySQL匹配的8.0版本及以上
我使用的是:mysql-connector-java-8.0.18.jar
解決了上一個問題,但是又出現了新的問題:
java.sql.SQLException: The server time zone value '�й���ʱ��' is unrecognized or represents more than...
這個錯誤是因為mysql連接的依賴包是高版本的情況下,在配置datasource.url時不能簡單的這樣配:
url=jdbc:mysql://localhost:3306/day13
需要加上一些必要的后綴信息(改成下面的配置就可以了):
url=jdbc:mysql://localhost:3306/day13?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true
ok,問題解決!
(3)有一天我按照上面的方法卻報出了另外一個錯誤:
java.sql.SQLException: validateConnection false
檢查了半天才發現,driverName少寫了一個cj.差點吐血。。。
driverClassName=com.mysql.cj.jdbc.Driver