Я использую класс java для запуска своих серверных служб, в настоящее время я использую базу данных, управляемую digitalocean, и столкнулся с такой странной проблемой. Насколько я понимаю, управляемая база данных имеет возможность подключения для чтения и записи, а из моего собственного JDB C подключения для записи я установил подключение для записи только для чтения (false) и autoCommit (false), но он все еще встречает исключение только для чтения из запуска SQL синтаксис.
Ниже мой код для получения соединения записи
public synchronized Connection getWriteConnection() throws Exception {
Connection conn = null;
if (!busy) {
if (connectionPool.isEmpty()) {
Class.forName(ServerProperties.DB_WRITE_DRIVER);
conn = (Connection) DriverManager.getConnection(ServerProperties.DB_WRITE_URL, ServerProperties.DB_WRITE_USERNAME, ServerProperties.DB_WRITE_PASSWORD);
conn.setReadOnly(false);
conn.setAutoCommit(false);
if (conn.isReadOnly()) {
conn.setReadOnly(false);
}
} else {
conn = connectionPool.get(0);
conn.setReadOnly(false);
conn.setAutoCommit(false);
connectionPool.remove(connectionPool.get(0));
connectionPool.trimToSize();
}
} else {
return getWriteConnection();
}
return conn;
}
SQL State : HY000
SQL Exception : The MySQL server is running with the --read-only option so it cannot execute this statement
Error Code : 1290
com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:953)
com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1092)
com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1040)
com.mysql.cj.jdbc.ClientPreparedStatement.executeLargeUpdate(ClientPreparedStatement.java:1347)
com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdate(ClientPreparedStatement.java:1025)