MySQL Galera Cluster是一个多主复制集群,其中每个节点都有一个完整的数据副本,这些节点通过异步复制数据来保持一致性。在MySQL Galera Cluster中,所有节点都是对等的,可以同时读取和写入数据,因此可以提供更高的可用性和可扩展性。
要在CentOS 8上安装MySQL Galera Cluster,可以按照以下步骤进行操作:
添加MariaDB官方仓库:在CentOS 8上,可以通过以下命令添加MariaDB官方仓库:
sudo dnf install https://downloads.mariadb.com/MariaDB/mariadb_repo_setup
安装MariaDB:执行以下命令安装MariaDB:
sudo dnf install MariaDB-server MariaDB-client
配置防火墙:MySQL Galera Cluster需要打开一些端口才能正常工作,可以通过以下命令打开这些端口:
sudo firewall-cmd --add-service=mysql --permanent
sudo firewall-cmd --add-port=4567/tcp --permanent
sudo firewall-cmd --add-port=4568/tcp --permanent
sudo firewall-cmd --add-port=4444/tcp --permanent
sudo firewall-cmd --reload
配置Galera Cluster:在所有节点上,编辑MariaDB的配置文件,通常是/etc/my.cnf.d/server.cnf文件,确保以下配置项正确设置:
[mysqld]
binlog_format=ROW
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
# Galera Cluster
wsrep_on=ON
wsrep_provider=/usr/lib64/galera-4/libgalera_smm.so
wsrep_cluster_address="gcomm://<node1_ip>,<node2_ip>,<node3_ip>"
wsrep_cluster_name='my_wsrep_cluster'
wsrep_node_address='<current_node_ip>'
wsrep_node_name='<current_node_name>'
wsrep_sst_method=rsync
其中,<node1_ip>、<node2_ip>、<node3_ip>是Galera Cluster中其他节点的IP地址,<current_node_ip>是当前节点的IP地址,<current_node_name>是当前节点的名称。
注意:在配置wsrep_cluster_address时,确保只列出正常运行的节点IP地址,否则可能会导致节点无法启动。
启动Galera Cluster:在所有节点上,执行以下命令启动Galera Cluster:
sudo systemctl start mariadb
执行以下命令检查所有节点是否成功加入Galera Cluster:
sudo mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"
如果返回的结果是3,则表示所有3个节点都已成功加入Galera Cluster。
至此,你已经在CentOS 8上成功安装和配置了MySQL Galera Cluster。