【问题标题】:MySQL: Unknown system variable 'tx_read_only'MySQL:未知系统变量“tx_read_only”
【发布时间】:2013-05-13 05:14:40
【问题描述】:

我正在开发一个基于 Java Swing 的应用程序+ Hibernate+Mysql+Spring。 当我测试 CRUD 操作时,读取没有问题,但在插入语句中系统显示消息:

Unknown system variable `tx_read_only`

我有最新版本的 MySQl

  • 休眠 4
  • Java 注释

你能告诉我现在要解决哪个问题吗?

【问题讨论】:

  • 检查您的 Spring 配置/注释 - 可能事务配置为只读?
  • 这是我的 Sprin XMl 配置文件... ' 我没看到。

标签: java mysql spring hibernate


【解决方案1】:

只是向黑暗中扔石头,但一种可能是:

  • 变量tx_read_only 是在 MySQL 5.6.5 中引入的。
  • 可能 MySQL 版本比这更旧,但 Connector/J 无论如何都会尝试使用新变量。
  • 根据release notes,Connector/J 5.1.23 支持此变量。

==> 可能比 5.1.23 旧的版本可以工作,或者这是在比它更新的版本中修复的错误。

【讨论】:

  • 作为扩展答案:最后我对驱动程序 5.1.22 没有任何问题 / MySQL 数据库是 6.0.10 版本 / 在这个版本中,只有一个带有 tx_ 前缀的变量:TX_ISOLATION ... 希望 MySQL社区尽快解决这个在我通过 Spring 框架从 HIbernate 3.1 迁移到 4.2 时出现的错误。谢谢 Mikko :)
【解决方案2】:

在我的例子中,我使用默认的 innodb url 格式连接到 mariadb。 所以它选择了错误的驱动程序 不正确:jdbc:mysql:// 正确:jdbc:mariadb://

【讨论】:

    【解决方案3】:

    【讨论】:

    • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 1970-01-01
    • 2019-08-09
    • 2013-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多