因为无法访问外网, 配置官网的yum无法下载MariaDB Galera(在MariaDB 10.1 及之后内置了Galera, 不像之前那样需要独立安装)
需要在下载的包
MariaDB-10.1.31-centos73-x86_64-client.rpm MariaDB-10.1.31-centos73-x86_64-devel.rpm jemalloc-3.6.0-1.el7.x86_64.rpm
MariaDB-10.1.31-centos73-x86_64-common.rpm MariaDB-10.1.31-centos73-x86_64-server.rpm
MariaDB-10.1.31-centos73-x86_64-compat.rpm galera-25.3.22-1.rhel7.el7.centos.x86_64.rpm
需要其他的依赖包
- yum install *.rpm
配置MariaDB Galera Cluster
- master节点
配置文件/etc/my.cnf.d/server.cnf
[server]
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
innodb_file_per_table=1
skip_name_resolve=1
log_bin=master-bin
relay_log=relay-bin
sync_binlog=1
[galera]
wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_address="gcomm://192.168.199.235,192.168.199.104,192.168.199.174"
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
wsrep_node_name=node2
wsrep_node_address=192.168.199.104
wsrep_cluster_name="my_wsrep_cluster"
bind-address=0.0.0.0
wsrep_slave_threads=1
innodb_flush_log_at_trx_commit=0
[embedded]
[mariadb]
[mariadb-10.1]
- 另外的slave节点也一样就是server_id, wsrep_node_name, wsrep_node_address不同
启动Galera
在Master中mysqld -wsrep-new-cluster --user=root, 在stdout中出现Synchronized with group, ready for connections表示成功
在Slave节点正常启动systemctl start mariadb
测试
- 在master节点: show status like 'wsrep_cluster_size'; # 如果为3则对
注意
- 在Galera中复制不是基于binlog, 而是更加底层的数据, 通过Galera的API调用实现的
- slave节点中show slave status\G; 不会有任何信息, 因为复制的不是binlog