MYSQL Group Replication搭建過程記錄
1.
環境準備
作業系統redhat linux 6.8
虛擬機器3臺
一臺用於primary, 另外兩臺用於做secondary
注意:
請先設定好各個主機的hostname與/etc/hosts
mysql版本: mysql-5.7.20
主名 ip地址 在mgr中的角色
mgrhost01 192.168.43.143 primary
mgrhost02 192.168.43.144 seconde
mgrhost03 192.168.43.145 seconde
2.
安裝mysql資料服務
cd /tmp/
wget
https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
tar -xvf
mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
cd /usr/local/
ln -s
mysql-5.7.20-linux-glibc2.12-x86_64 mysql
注意:三個環境都需要安裝
在三臺主機上執行以下命令:
mkdir -p /database/mysql/data/3306
useradd mysql
chown -R mysql:mysql /database/mysql/data/3306
chown -R mysql:mysql /usr/local/mysql*
3.配置mysql服務
三臺主機都增加配置檔案: /etc/my.cnf
其中143的配置檔案內容:
basedir=/usr/local/mysql/
datadir=/database/mysql/data/3306
port=3306
socket=/tmp/mysql.sock
server_id=143
gtid_mode=on
enforce_gtid_consistency=on
master_info_repository=table
relay_log_info_repository=table
binlog_checksum=none
log_slave_updates=on
log_bin=mysql-bin
binlog_format=row
relay-log-recovery=1
transaction_write_set_extraction=XXHASH64
loose-group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
loose-group_replication_start_on_boot=off
loose-group_replication_local_address= "192.168.43.143:33060"
loose-group_replication_group_seeds= "192.168.43.143:33060,192.168.43.144:33060,192.168.43.145:33060"
loose-group_replication_bootstrap_group=
off
192.168.43.144的/etc/my.cnf
[mysqld]
basedir=/usr/local/mysql/
datadir=/database/mysql/data/3306
port=3306
socket=/tmp/mysql.sock
server_id=144
gtid_mode=on
enforce_gtid_consistency=on
master_info_repository=table
relay_log_info_repository=table
binlog_checksum=none
log_slave_updates=on
log_bin=mysql-bin
binlog_format=row
relay-log-recovery=1
transaction_write_set_extraction=XXHASH64
loose-group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
loose-group_replication_start_on_boot=off
loose-group_replication_local_address= "192.168.43.144:33060"
loose-group_replication_group_seeds= "192.168.43.143:33060,192.168.43.144:33060,192.168.43.145:3306"
loose-group_replication_bootstrap_group=
off
192.168.43.145的/etc/my.cnf
[mysqld]
basedir=/usr/local/mysql/
datadir=/database/mysql/data/3306
port=3306
socket=/tmp/mysql.sock
server_id=145
gtid_mode=on
enforce_gtid_consistency=on
master_info_repository=table
relay_log_info_repository=table
binlog_checksum=none
log_slave_updates=on
log_bin=mysql-bin
binlog_format=row
relay-log-recovery=1
transaction_write_set_extraction=XXHASH64
loose-group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
loose-group_replication_start_on_boot=off
loose-group_replication_local_address= "192.168.43.145:33060"
loose-group_replication_group_seeds= "192.168.43.143:33060,192.168.43.144:33060,192.168.43.145:3306"
loose-group_replication_bootstrap_group=
off
在這裡有一些技術細節要說明一下:
上面的三個配置檔案省略了所有不必要的配置項、但是看起來還是有點多、這些都是mgr環境要求的。
server_id 每個例項都要不要樣
loose-group_replication_group_name:為mgr高可用組起一個名字,這個名字一定要是uuid格式的。
loose-group_replication_local_address:mgr各例項之前都是要進行通訊的、這個配置項設定的就是本例項所監聽的ip:埠
loose-group_replication_group_seeds:各mgr例項所監聽的ip:埠資訊
三個環境初始化mysql(注意,此處mysql的root使用者密碼會被設定為空值):
/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
--datadir=/database/mysql/data/3306/ --user=mysql --initialize-insecure
三個環境將mysql加入系統服務
cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod +x /etc/rc.d/init.d/mysqld
chkconfig mysqld on
修改環境變數:
echo 'PATH=/usr/local/mysql/bin/:$PATH' >>/etc/profile
啟動mysql服務:
service mysqld start
停止mysql服務:
service mysqld stop
4.配置MGR
4.1 建立mgr所需的使用者(第一個節點)
set
sql_log_bin=0;
create user mgruser@'%' identified by 'mtls@352';
grant replication slave,replication client on *.* to mgruser@'%';
create user mgruser@'127.0.0.1' identified by 'mtls@352';
grant replication slave,replication client on *.* to mgruser@'127.0.0.1';
create user mgruser@'localhost' identified by 'mtls@352';
grant replication slave,replication client on *.* to mgruser@'localhost';
set sql_log_bin=1;
4.2 配置複製所使用的使用者
change master to
master_user='mgruser',
master_password='123456'
for channel 'group_replication_recovery';
4.3 安裝MGR外掛 install plugin group_replication soname 'group_replication.so';
4.4. 初始化一個複製組
set global
group_replication_bootstrap_group=on;
start group_replication;
set
global group_replication_bootstrap_group=off;
4.5. 配置MGR的第二個節點
set sql_log_bin=0;
create user mgruser@'%' identified by '123456';
grant replication slave,replication client on *.* to mgruser@'%';
create user mgruser@'127.0.0.1' identified by '123456';
grant replication slave,replication client on *.* to mgruser@'127.0.0.1';
create user mgruser@'localhost' identified by '123456';
grant replication slave,replication client on *.* to mgruser@'localhost';
set
sql_log_bin=1;
change master
to
master_user='mgruser',
master_password='123456'
for channel 'group_replication_recovery';
install plugin group_replication soname 'group_replication.so'; start group_replication;
使用以上指令碼依次處理剩餘節點。
驗證:
至此,配置完成
mgr中所有的結點都屬於一個邏輯上的組、這個組就像是QQ群一樣、是由群主建起來的、有了這個上組之後、其它的結點就可以加入到這個組中來了。
搭建中的注意項:
1.
安裝虛擬機器作業系統時,因hostname安裝時未能設定好,修改了hostname, 重啟了作業系統之後,group_replication不能正常啟動
mysql> start group_replication;
set global group_replication_bootstrap_group=off;
ERROR 3094
(HY000): The START GROUP_REPLICATION command failed as the applier module
failed to start.
在引數檔案/etc/my.cnf中加入了relay-log-recovery=1之後,才正常啟動複製
2. 安裝mysql服務前,最好先設定好hostname與/etc/hosts
本案例中/etc/hosts的內容為:
192.168.43.143 mgrhost01
192.168.43.144 mgrhost02
192.168.43.145 mgrhost03
3. select * from performance_schema.replication_group_members ; 這個SQL查詢的列的member_state欄位應都為state才是正常的
參考:
http://www.cnblogs.com/JiangLe/p/6727281.html
https://haofly.net/mysql-master-slave/
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8520577/viewspace-2159443/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL Group ReplicationMySql
- MGR(MySQL Group Replication)部署搭建測試MySql
- MySQL group replication介紹MySql
- Mysql Replication學習記錄MySql
- 配置Mysql Group Replication遇到的問題筆記MySql筆記
- MySQL8.0.16新特性:The Communication Protocol In Group ReplicationMySqlProtocol
- Mysql 5.7 基於組複製(MySQL Group Replication) - 運維小結MySql運維
- group_replication_bootstrap_group 用於什麼boot
- MySQL MHA詳細搭建過程MySql
- Centos7.9 安裝mysql8.4.3-lts 記錄過程CentOSMySql
- 【MySQL】MySQL Replication 一主一備搭建步驟(GTID方式)MySql
- SpinalHDL上板過程記錄
- 【MySQL】MySQL Replication 一主一備搭建步驟(傳統方式)MySql
- Availability Group On Linux 搭建後記AILinux
- Build mysql replicationUIMySql
- LLM本地部署全過程記錄
- Issac_GYM重要過程記錄
- 使用ProxySQL實現MySQL Group Replication的故障轉移、讀寫分離(一)MySql
- MySQL MGR單主模式詳細搭建過程MySql模式
- 系統變數group_replication_group_seeds為空導致MySQL節點無法啟動組複製變數MySql
- 記錄BW-SGWIN原始碼信用盤盤口功能搭建部署過程原始碼
- 升級 PHP7 過程記錄PHP
- atc轉換過程問題記錄
- Xilinx_HLS上板過程記錄
- PR一個 composer包過程記錄
- 記錄一次現網MySQL記憶體增長超限問題定位過程MySql記憶體
- MySQL 8.0 Reference Manual(讀書筆記90節--Replication)MySql筆記
- Flutter專案整合mqtt的過程記錄FlutterMQQT
- 【ETL工具】DataX + DataXWeb 初使用過程記錄Web
- 面試就業過程的記錄了面試就業
- 記錄NLTK安裝使用全過程--pythonPython
- MySQL基於GTIDs的MySQL ReplicationMySql
- Mysql replication check指令碼MySql指令碼
- An Overview of PostgreSQL & MySQL Cross ReplicationViewMySqlROS
- MySQL 記一次 Bug發現過程MySql
- 記錄一次記憶體洩漏排查過程記憶體
- MySQL 8.0 Reference Manual(讀書筆記94節--Replication(5))MySql筆記
- MySQL 8.0 Reference Manual(讀書筆記93節--Semisynchronous Replication)MySql筆記