MySQL——Caused by: java.sql.SQLException: Unknown system variable 'transaction_isolation'


關注微信公眾號:CodingTechWork,一起學習進步。
在這里插入圖片描述

介紹

問題概述

  在開發過程中,服務程序報錯Caused by: java.sql.SQLException: Unknown system variable 'transaction_isolation'看着sql字樣,應該是數據庫的問題。

排查方向

  遇到這種問題,我們首先要看數據庫是否正常,也可以通過查看連接數據庫的其他服務是否正常。其次,我們是要查看自己開發的服務程序是否連接數據庫異常,如驅動版本號是否和數據庫一致?是否連接配置有問題?

報錯排查

查看數據庫

  1. 查看數據庫版本號
mysql> select version();
  1. 查看數據庫隔離級別變量
mysql> show variables like 't%_isolation';

在這里插入圖片描述

查看服務程序

  1. 查看jdbc驅動版本號
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId></dependency>

點擊mysql-connector-java查看版本號:
在這里插入圖片描述
我們也可以通過查看jar包的方式核對。
在這里插入圖片描述

解決方案

分析原因

  由於業務需要將Spring Boot的版本號提高到了2.x,而jdbc版本號未指定,隨之帶來的mysql-connector-java版本號也跟着提高到了,導致驅動和數據庫版本不匹配。

解決方案

  當通過數據庫查看show variables like 't%_isolation';沒有出現transaction_isolation,要么升級數據庫,要么降低連接數據庫的服務程序jdbc版本(不超過5.1.43)。
  在數據庫通用的情況下,我們一般還是更改服務的jdbc版本比較穩妥,如下方式更改依賴:在這里插入圖片描述
依賴代碼:

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.43</version>
</dependency>

  更改完依賴后,重新import一下依賴,最后打包,重啟服務發現不再報錯即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM