【发布时间】:2014-08-28 01:10:04
【问题描述】:
我正在为 MySQL 使用 MariaDB 5.5.38 和 JDBC 驱动程序。根据this article 我应该使用像
这样的连接字符串jdbc:mysql://address=(type=master)(host=master1host),address=(type=master)(host=master2host)/db
使用多个主控主机。但是当我使用它时,我在com.mysql.jdbc.NonRegisteringDriver.parseHostPortPair(NonRegisteringDriver.java:216) [mysql.mysql-connector-java-5.1.30.jar:na] 中得到NullPointerException。我也使用 Apache Commons 的连接池,但我认为它不相关。那么,我做错了什么?
【问题讨论】:
-
是否需要将主机指定为主机/端口对?例如 (host=master1host:3089)?
-
我每个主机都使用同一个端口,所以我觉得没关系。
-
指向单个主机是否有效?
-
没有。我尝试了 jdbc:mysql://address=(type=master)(host=localhost)(port=3306)/db 并抛出了上述异常。
-
我可以确认这也发生在 vanilla mysql Mysqlconnector J 以下文档中:dev.mysql.com/doc/connector-j/en/… 在我的情况下,两个连接都是 localhost,但不同的端口和 NPE 仍然存在。但一个是主另一个是从,我认为这与两个连接都是主无关