MySQL MGR(MySQL Group Replication)是一種MySQL數(shù)據(jù)庫(kù)的高可用性解決方案,它將數(shù)據(jù)分布在多個(gè)節(jié)點(diǎn)上,達(dá)到數(shù)據(jù)備份和冗余的目的,使數(shù)據(jù)更加安全可靠。本文將介紹如何在Ubuntu系統(tǒng)上使用MySQL Community版本搭建MGR集群。
安裝MySQL Community版本
sudo apt-get update sudo apt-get install mysql-server
安裝成功后,啟動(dòng)MySQL服務(wù)并設(shè)置 root用戶密碼
sudo systemctl start mysql sudo mysql_secure_installation
使用mysqldump備份當(dāng)前數(shù)據(jù)庫(kù),以便后續(xù)恢復(fù)數(shù)據(jù)
mysqldump -u root -p --all-databases >all-databases.sql
下載并安裝MySQL Shell
wget https://dev.mysql.com/get/mysql-shell-8.0/mysql-shell_8.0.27-1ubuntu18.04_amd64.deb sudo dpkg -i mysql-shell_8.0.27-1ubuntu18.04_amd64.deb
創(chuàng)建MGR用戶
CREATE USER 'mgruser'@'%' IDENTIFIED BY 'password’; GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'mgruser'@'%';
配置MySQL MGR
將以下配置添加至my.cnf文件中
[mysqld] bind-address = 0.0.0.0 server-id = 1 enforce-gtid-consistency = ON binlog_checksum = NONE log_slave_updates = ON gtid_mode = ON log_bin = binlog binlog_format = ROW plugin-load-add = group_replication.so group_replication_consistency = 'BEFORE' group_replication_enforce_update_everywhere_checks = ON group_replication_exit_state_action = READ_ONLY group_replication_group_name = 'mgrcluster' group_replication_ip_whitelist = 'ip1,ip2,ip3' group_replication_local_address = 'node_ip_address:33061' group_replication_group_seeds = 'seed_ip1:3306,seed_ip2:3306,seed_ip3:3306' group_replication_bootstrap_group = ON
在MGR集群中的其他節(jié)點(diǎn)上,將server-id,group_replication_local_address,以及group_replication_bootstrap_group設(shè)置為不同的值。
重啟MySQL服務(wù)
sudo systemctl restart mysql
使用MySQL Shell連接到MGR集群中的任一節(jié)點(diǎn)
mysqlsh --user=mgruser --password=passwd --host=ip1 -P 33061
使用MySQL Shell創(chuàng)建MGR集群
dba.createCluster('mgrcluster')
將其他節(jié)點(diǎn)加入MGR集群
cluster.addInstance('mgruser:password@node_ip_address:3306')
查看MGR集群狀態(tài)
dba.getCluster().status()
以上就是在Ubuntu系統(tǒng)上使用MySQL Community版本搭建MGR集群的具體步驟和方法。通過MGR集群,我們可以輕松地實(shí)現(xiàn)MySQL數(shù)據(jù)庫(kù)的高可用性和負(fù)載均衡,提高數(shù)據(jù)訪問的效率和穩(wěn)定性。