我已在Ubuntu 16.04的2个节点上安装了MariaDB Galera群集。
这是来自node1的信息:
root@localhost:~# sudo more /etc/mysql/conf.d/galera.cnf
[mysqld]
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
# Galera Provider Configuration
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
# Galera Cluster Configuration
wsrep_cluster_name="galera_cluster"
wsrep_cluster_address="gcomm://192.168.143.81,192.168.148.75"
# Galera Synchronization Configuration
wsrep_sst_method=rsync
# Galera Node Configuration
wsrep_node_address="192.168.143.81"
wsrep_node_name="Node1"
以及来自node2的信息:
mysqld]
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
# Galera Provider Configuration
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
# Galera Cluster Configuration
wsrep_cluster_name="galera_cluster"
wsrep_cluster_address="gcomm://192.168.143.81,192.168.148.75"
# Galera Synchronization Configuration
wsrep_sst_method=rsync
# Galera Node Configuration
wsrep_node_address="192.168.148.75"
wsrep_node_name="Node2”
我正在从Java应用程序访问数据库。具有以下属性:
spring.datasource.url=jdbc:mysql://192.168.143.81:3306/can_peris_db
spring.datasource.username=peris
spring.datasource.password=3nRam0nD3L3s0l1v3s
spring.jpa.show-sql=false
spring.jpa.properties.hibernate.format_sql=true
hibernate.dialect=org.hibernate.dialect.MySQLDialect
一切正常,并且两个数据库中的数据都已复制..但是当我关闭服务器192.168.143.81时,出现了错误java.net.NoRouteToHostException: No route to host (Host unreachable)
有没有一种方法可以自动连接到可用的主机?
答案 0 :(得分:0)
您需要设置一个浮动IP并安装Keepalived
答案 1 :(得分:0)
您有两种选择。看一下MariaDB JDBC connector documentation。
例如,如果您只想使用故障转移方案,则应通过以下方式设置jdbc网址:
<stdlib.h>
“顺序”模式意味着只有在第一个节点不可用时,应用程序才会尝试始终连接到第一个主机并切换到故障转移节点。
希望这会有所帮助。