问题
We are using jdbc url like jdbc:mysql://localhost:3306/mysql
. How could I set second mysql host in this url? If this is imposible, how could I set in my java application (hibernate) connection to second MySQL server?
Thanks!
PS. actually we want to parallelize operations to two different databases. Is there any solution for that in Hibernate?
回答1:
This is really about failover/clustering.
jdbc:mysql://192.168.29.20:3306,192.168.29.20:6306/mysql should do it. see http://lists.mysql.com/cluster/249
Reference:
- https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-reference-configuration-properties.html
回答2:
an example for Oracle (failover with 3 hosts):
jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.200.40.5)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=10.200.40.6)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=10.200.40.7)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=OLTP.WORLD)))
Regards.
回答3:
2 options here:
1) You can write some code which would change your hibernate properties and switch your DB url.
2) you can have multiple hibernate configurations for multiple session-factories.
来源:https://stackoverflow.com/questions/17788085/two-hosts-in-jdbc-url