我正在连接到 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
注意:在主实例(而不是只读副本)上运行将是我的最后选择。我几乎知道它会起作用。