java - 具有 2 个不同数据库名称的 MySQL JDBC URL 故障转移

标签 java mysql jdbc spring-boot mysql-connector

我想在 SpringBoot 应用程序的 application.yml 中有一个带有 2 个不同模式/数据库名称的 jdbc url。

我通过关注 Reference Link 尝试了这些但不幸的是我无法让它工作。

jdbc:mysql://address=(type=master)(protocol=tcp)(host=IP1)(port=3306)(user=root)(password=root)/dbname1?failOverReadOnly=false,address=(type=master)(protocol=tcp)(host=IP2)(port=3306)(user=test)(password=test)/dbname2?failOverReadOnly=false

jdbc:mysql://address=(type=master)(protocol=tcp)(host=IP1)(port=3306)(user=root)(password=root)(dbname=dbname1)?failOverReadOnly=false,address=(type=master)(protocol=tcp)(host=IP2)(port=3306)(user=test)(password=test)(dbname=dbname2)?failOverReadOnly=false

我在启动应用程序时收到错误,因为 MySQL 连接器无法解析 url 连接字符串。

2017-02-21 11:37:40.724] log4j - 3060 ERROR [main] --- o.a.t.j.p.ConnectionPool: Unable to create initial connections of pool.
java.sql.SQLException: The connection property 'failOverReadOnly' only accepts values of the form: 'true', 'false', 'yes' or 'no'. The value 'false,address=(type=master)(protocol=tcp)(host=localhost)(port=3306)(user=test)(password=test)/dbname2?failOverReadOnly=false' is not in this set.
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:964)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:897)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:886)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:860)

最佳答案

这是一个旧线程,我不知道您是否找到了适合您的解决方案。

但我遇到过类似的情况,下面的 JDBC URL 对我来说就像一个魅力

"jdbc:mysql://IP1:port1,IP2:port2/CommonDbName?failOverReadOnly=false"

在这种情况下,在任何时候你的应用程序都将只连接到一个数据库,它在 IP1 上,一旦这个数据库关闭,它将切换到第二个数据库,即 IP2,并且因为你已经标记了 failOverReadOnly 为 false,第二个数据库将在读/写模式下处于 Activity 状态。

引用-

8.1 Configuring Server Failover

关于java - 具有 2 个不同数据库名称的 MySQL JDBC URL 故障转移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42363920/

相关文章:

java - 验证失败后重置 selectOneMenu 表单值

java - JUnit String 和 StringBuffer 之间的不同行为

java - 部署 ws 模块 Apache CXF 期间出错

mysql - 尝试将现有查询转换为存储过程,gis

php - 无法显示图像路径存储在数据库中的图像

java - JDBC MySQL 执行 SQL 失败

java - 自定义 JSpinner

javascript - 如何从mysql数据在php中绘制树结构?

java - 使用JDBC 8连接到Excel

java - 如何通过相互 TLS/SSL 加密从 Java JDBC 连接到 SQL DB