通過 mysqldump 搭建基於 gtid MySQL 5.7 主從複製

安裝主從 MySQL 5.7

# 主 MySQL5.7
useradd mysql /sbin/nologin
cd /usr/local
tar -xvf mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.23-linux-glibc2.12-x86_64/ mysql
cd mysql
mkdir data conf
vim conf/my.cnf
-------------------------------------------
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
symbolic-links=0
log-error=/tmp/mysqld.log
pid-file=/usr/local/mysql/data/mysqld.pid
server-id=10
port=3388
gtid_mode=on
enforce_gtid_consistency=on
log_bin
binlog_format=row
-------------------------------------------
export PATH=$PATH:/usr/local/mysql/bin
mysqld --defaults-file=/usr/local/mysql/conf/my.cnf --initialize --user=mysql
mysqld_safe --defaults-file=/usr/local/mysql/conf/my.cnf --user=mysql &
# 從 MySQL5.7
useradd mysql /sbin/nologin
cd /usr/local
tar -xvf mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.23-linux-glibc2.12-x86_64/ mysql
cd mysql
mkdir data conf
vim conf/my.cnf
-------------------------------------------
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
symbolic-links=0
log-error=/tmp/mysqld.log
pid-file=/usr/local/mysql/data/mysqld.pid
server-id=20
port=3388
gtid_mode=on
enforce_gtid_consistency=on
log_bin
binlog_format=row
-------------------------------------------
export PATH=$PATH:/usr/local/mysql/bin
mysqld --defaults-file=/usr/local/mysql/conf/my.cnf --initialize --user=mysql
mysqld_safe --defaults-file=/usr/local/mysql/conf/my.cnf --user=mysql &

主從節點更改 root@'localhost' 密碼和創建複製賬號

set sql_log_bin=0;
alter user root@'localhost' identified by 'MySQL5.7';
create user root@'%' identified by 'MySQL5.7';
grant all on *.* to root@'%';
flush privileges; 
set sql_log_bin=1;

在主節點生成測試數據

#!/bin/bash
sysbench /usr/share/sysbench/tests/include/oltp_legacy/oltp.lua \
--mysql-host=192.168.1.225 \
--mysql-port=3388 \
--mysql-user=root \
--mysql-password=MySQL5.7 \
--oltp-test-mode=complex \
--oltp-tables-count=10 \
--oltp-table-size=1000000 \
--threads=10 \
--time=120 \
--report-interval=10 \
--db-driver=mysql prepare

將主節點的數據傳到從節點

mysqldump -S /tmp/mysql.sock -u root -pMySQL5.7 \
--all-databases --triggers --routines --events \
--single-transaction --quick | mysql -h 192.168.1.226 -P 3388 -u root -pMySQL5.7

將從服務器指定到主服務器

change master to master_host='192.168.1.225',master_port=3388,master_user='root',master_password='MySQL5.7',master_auto_position=1;
start slave;
show slave status\G
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章