一主一從
主12主機
準備工作
mkdir -p /data/mysql/logbin
chown -R mysql:mysql /data/mysql

主節點mysql配置
vim /etc/my.cnf.d/mysql-server.cnf
server-id=177
log_bin=/data/mysql/logbin/mysql-bin
default_authentication_plugin=mysql_native_password

查看效果
systemctl restart mysqld
ll /data/mysql/logbin/

show master logs;

同步賬號授權
create user repluser@'10.0.0.%' identified by '123456';
grant replication slave on *.* to repluser@'10.0.0.%';
flush privileges;

從15主機
準備工作
\rm -rf /var/lib/mysql/*
systemctl start mysqld
mkdir -p /data/mysql/logbin
chown -R mysql:mysql /data/mysql

從節點mysql配置
vim /etc/my.cnf.d/mysql-server.cnf
server-id=183
read-only
log-bin=/data/mysql/logbin/mysql-bin
default_authentication_plugin=mysql_native_password

查看效果
systemctl start mysqld
ll /data/mysql/logbin

從角色配置數據同步角色
主12主機
確認數據信息
show master logs;
show master status;

從15主機
配置主從同步
CHANGE MASTER TO MASTER_HOST='10.0.0.12', MASTER_USER='repluser',
MASTER_PASSWORD='123456', MASTER_PORT=3306,MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=849;

啟動
start slave;

測試
主12主機創建數據庫db1
create database db1;

從15主機查看是否同步
show databases;

節點重置
主12主機重置
reset master;

show slave status\G

重新連接
CHANGE MASTER TO MASTER_HOST='10.0.0.12', MASTER_USER='repluser',-> MASTER_PASSWORD='123456', MASTER_PORT=3306,MASTER_LOG_FILE='mysql-bin.000001',-> MASTER_LOG_POS=157;start slave;

一主多從
從18主機
準備工作
mkdir -p /data/mysql/logbin
chown -R mysql:mysql /data/mysql

vim /etc/my.cnf.d/mysql-server.cnf
server-id=186
read-only
log-bin=/data/mysql/logbin/mysql-bin
default_authentication_plugin=mysql_native_password

主12主機基礎數據同步
mysqldump -A --source-data=1 --single-transaction > all.sql
scp all.sql 10.0.0.18:/root/

從18主機修改配置

set sql_log_bin=0;臨時關閉
source /root/all.sql;
set sql_log_bin=1;重新開啟

從18主機開啟同步
start slave;
show slave status\G

級聯復制
中間節點配置
select @@log_slave_updates;

開啟中繼能力
vim /etc/my.cnf.d/mysql-server.cnf
log_slave_updates

查看中繼主機
show slave status\G
select user,host from mysql.user;


傳遞給從18主機
mysqldump -A -F --single-transaction --source-data=1 > middle-all.sql
scp middle-all.sql root@10.0.0.18:/root/

從18主機配置
重置環境
systemctl stop mysqld
\rm -rf /var/lib/mysql/*
\rm -rf /data/mysql/logbin/*
systemctl start mysqld

vim /etc/my.cnf.d/mysql-server.cnf
server-id=186
read-only
log-bin=/data/mysql/logbin/mysql-bin
default_authentication_plugin=mysql_native_password

修改同步配置文件
CHANGE MASTER TO MASTER_HOST='10.0.0.15',MASTER_USER='repluser',MASTER_PASSWORD='123456',MASTER_PORT=3306,MASTER_LOG_FILE='mysql-bin.000003', MASTER_LOG_POS=157;

導入數據
set sql_log_bin=0;臨時關閉
select @@sql_log_bin;
source /root/middle-all.sql
set sql_log_bin=1;

啟動從服務
start slave;

查看中繼主機
show processlist\G

主主復制
重置從18主機
stop slave;
reset slave all;

中繼15主機確認
show slave hosts;

準備工作
主1-12主機
vim /etc/my.cnf.d/mysql-server.cnf
server-id=177
log_bin=/data/mysql/logbin/mysql-bin
default_authentication_plugin=mysql_native_password

vim /etc/my.cnf.d/mysql-server.cnf
server-id=183
log-bin=/data/mysql/logbin/mysql-bin
default_authentication_plugin=mysql_native_password

查看主從效果
systemctl restart mysqld
show slave status\G

配置12主機為從角色
CHANGE MASTER TO-> MASTER_HOST='10.0.0.15',-> MASTER_USER='repluser',-> MASTER_PASSWORD='123456',-> MASTER_PORT=3306,-> MASTER_LOG_FILE='mysql-bin.000004',-> MASTER_LOG_POS=157;
start slave;

查看從12主機狀態
show slave status\G
