MySQL JDBC驱动程序无法在读取副本时将数据插入临时表



我正在连接以读取MySQL的副本实例(实际上是Google Cloud SQL(。JDBC驱动程序似乎可以创建临时表,但不能将数据插入其中。但是,使用另一个客户端(在我的例子中是MySQL工作台(,我可以创建数据并将数据插入临时表。看起来像JDBC驱动程序中的一个错误?有什么选择可以让它发挥作用?

以下是我得到的例外(由于公司政策,我无法发布整个堆栈竞赛(:

Caused by: java.sql.SQLException: The MySQL server is running with the --read-only option so it cannot execute this statement
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4074)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4006)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2468)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2629)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2719)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2155)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2450)
at com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:2006)

版本详细信息:
MySQL版本=5.7.25-google-log
JDBC驱动程序=MySQL-connector-java-5..1.21.jar

注意:在主实例上运行(而不是读取副本(将是我的最后一个选择。我很清楚它会起作用的。

不,驱动程序版本99%不是问题原因(我想(。因为我使用匹配的JDBC驱动程序版本在MySQL 5.0、5.1、5.6和5.7上成功地写入了临时表。

错误消息告诉我,由于其"只读"配置,服务器本身正在拒绝尝试。

有一个相关的错误报告:https://bugs.mysql.com/bug.php?id=64992

你确定你的表真的是一个临时表(而不是常规表(,并且你在同一个会话/连接中使用它吗?因为除此之外,它是不起作用的。

尝试使用最新版本的JDBC驱动程序(v5.148(,它成功了!因此,我之前使用的JDBC驱动程序版本(v5.1.21(中有一个错误

相关内容

  • 没有找到相关文章

最新更新