java.sql.SQLException:未知的系统变量“ tx_isolation”

时间:2018-06-25 05:47:04

标签: java mysql database playframework

我正在使用播放框架,我想连接数据库,但是因为出现以下错误,所以无法连接:

play.api.Configuration$$anon$1: Configuration error[Cannot connect to database [default]]
Caused by: play.api.Configuration$$anon$1: Configuration error[Failed to initialize pool: Unknown system variable 'tx_isolation']
Caused by: com.zaxxer.hikari.pool.HikariPool$PoolInitializationException: Failed to initialize pool: Unknown system variable 'tx_isolation' java.sql.SQLException: Unknown system variable 'tx_isolation

我试图找到tx_isolation,但它不存在:

mysql> show variables like 'tx_isolation';
Empty set (0.00 sec)

那是什么,如何找到tx_isolation


对不起。这是我的错误代码。我使用的是mysql 8.0.11。所以我找到了'transaction_isolation'

play.db {
  config = "db"
  default = "default"
}
db {
//TODO : 작업필요
  default.driver = com.mysql.jdbc.Driver
  default.url = "jdbc:mysql://127.0.0.1:3306/testPlayDB"
  default.username = root
  default.password = "321A@654"
}

错误原因Default.url =“ jdbc:mysql://127.0.0.1:3306 / testPlayDB”

我第一次使用Scala,playframework和StackOverflow ...

谢谢。

4 个答案:

答案 0 :(得分:6)

如果您正在使用MYSQL8,请尝试进行show variables like 'transaction_isolation'。 Mysql8已将tx_isolation重命名为transaction_isolation

答案 1 :(得分:1)

我有同样的问题。我升级了MySql Connector,并解决了我的问题。尝试使用版本8,如下所示:

<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.13</version>
</dependency>

答案 2 :(得分:0)

我也遇到了同样的错误(当我在mysql5中使用mysql6数据库时,它工作正常),然后将连接器jar从mysql-connector-java-5.1.46.jar更改为mysql.jar,然后问题消失了。 >

答案 3 :(得分:0)

您的客户端库版本和服务器版本不匹配。

以下是发生变化的版本号:

mysql-connector-java-8.0.8 release notes

<块引用>

重要变化:随着 MySQL Server 8.0.3 的变化,Connector/J 的代码中系统变量 tx_isolation 和 tx_read_only 被替换为 transaction_isolation 和 transaction_read_only。用户应将 Connector/J 更新到此最新版本以连接到 MySQL 8.0.3。如果他们在代码中使用旧变量,他们也应该对自己的应用程序进行相同的调整。 (错误 #26440544)

mysql server 5.7.20 release notes

<块引用>

以前,--transaction-isolation 和--transaction-read-only 服务器启动选项对应于 tx_isolation 和 tx_read_only 系统变量。为了更好地对应启动选项和系统变量名,transaction_isolation 和 transaction_read_only 被创建为 tx_isolation 和 tx_read_only 的别名。 tx_isolation 和 tx_read_only 变量现在已弃用,将在 MySQL 8.0 中删除。应用程序应调整为使用 transaction_isolation 和 transaction_read_only。

mysql server 8.0.3 release notes

<块引用>

已弃用的 tx_isolation 和 tx_read_only 系统变量已被删除。改用 transaction_isolation 和 transaction_read_only。