java.sql.SQLException: Could not retrieve transation read-only status server
阿新 • • 發佈:2018-12-22
最近在做整合springboot的專案,但是在整合mybatis出現了下面的問題:
java.sql.SQLException: Could not retrieve transation read-only status server at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:998) ~[mysql-connector-java-5.1.35.jar:5.1.35] at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:937) ~[mysql-connector-java-5.1.35.jar:5.1.35] at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926) ~[mysql-connector-java-5.1.35.jar:5.1.35] at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:872) ~[mysql-connector-java-5.1.35.jar:5.1.35] at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:904) ~[mysql-connector-java-5.1.35.jar:5.1.35] at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:894) ~[mysql-connector-java-5.1.35.jar:5.1.35] at com.mysql.jdbc.ConnectionImpl.isReadOnly(ConnectionImpl.java:3613) ~[mysql-connector-java-5.1.35.jar:5.1.35] at com.mysql.jdbc.ConnectionImpl.isReadOnly(ConnectionImpl.java:3582) ~[mysql-connector-java-5.1.35.jar:5.1.35] at com.alibaba.druid.pool.DruidConnectionHolder.<init>(DruidConnectionHolder.java:143) ~[druid-1.0.29.jar:1.0.29] at com.alibaba.druid.pool.DruidConnectionHolder.<init>(DruidConnectionHolder.java:83) ~[druid-1.0.29.jar:1.0.29] at com.alibaba.druid.pool.DruidDataSource.put(DruidDataSource.java:1890) ~[druid-1.0.29.jar:1.0.29] at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2143) [druid-1.0.29.jar:1.0.29] Caused by: java.sql.SQLException: Unknown system variable 'tx_read_only' at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:998) ~[mysql-connector-java-5.1.35.jar:5.1.35] at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3835) ~[mysql-connector-java-5.1.35.jar:5.1.35] at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3771) ~[mysql-connector-java-5.1.35.jar:5.1.35] at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2435) ~[mysql-connector-java-5.1.35.jar:5.1.35] at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2582) ~[mysql-connector-java-5.1.35.jar:5.1.35] at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2531) ~[mysql-connector-java-5.1.35.jar:5.1.35] at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2489) ~[mysql-connector-java-5.1.35.jar:5.1.35] at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1446) ~[mysql-connector-java-5.1.35.jar:5.1.35] at com.mysql.jdbc.ConnectionImpl.isReadOnly(ConnectionImpl.java:3607) ~[mysql-connector-java-5.1.35.jar:5.1.35] ... 5 common frames omitted 2018-12-06 21:35:41.179 INFO 9611 --- [eate-2067737171] com.alibaba.druid.pool.DruidDataSource : put physical connection to pool failed. Process finished with exit code 130 (interrupted by signal 2: SIGINT)
這是因為我的mysql 是8.0,然後我的驅動用的是5.0的,這個時候需要修改pom.xml,新增8.0的驅動:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.11</version>
</dependency>
參考文獻
[1].mysql 資料庫8.0版本,jdbc驅動連線問題.https://www.cnblogs.com/sanduweiliangxtx/p/9219405.html
[2].解決java.sql.SQLException: Could not retrieve transation read-only status server.https://blog.csdn.net/zhbpd/article/details/38669723