准备初始环境
# 三台虚拟机
10.0.0.51 db01
10.0.0.52 db02
10.0.0.53 db03
防火墙关闭
#清理环境:
pkill mysqld
rm -rf /data/3306/mkdir -p /data/3306/data /data/3306/binlog
chown -R mysql.mysql /data/
# 准备配置文件
主库db01:
mv /etc/my.cnf /tmp
cat > /etc/my.cnf <
basedir=/usr/local/mysql
datadir=/data/3306/data
socket=/tmp/mysql.sock
server_id=51
port=3306
secure-file-priv=/tmp
log_bin=/data/3306/binlog/mysql-bin
binlog_format=row
gtid-mode=off
[mysql]
prompt=db01 [\d]>
EOF
slave1(db02):
mv /etc/my.cnf /tmp
cat > /etc/my.cnf <
basedir=/usr/local/mysql
datadir=/data/3306/data
socket=/tmp/mysql.sock
server_id=52
port=3306
secure-file-priv=/tmp
log_bin=/data/3306/binlog/mysql-bin
binlog_format=row
gtid-mode=off
[mysql]
prompt=db02 [\d]>
EOF
slave2(db03):
mv /etc/my.cnf /tmp
cat > /etc/my.cnf <
basedir=/usr/local/mysql
datadir=/data/3306/data
socket=/tmp/mysql.sock
server_id=53
port=3306
secure-file-priv=/tmp
log_bin=/data/3306/binlog/mysql-bin
binlog_format=row
gtid-mode=off
[mysql]
prompt=db03 [\d]>
EOF
初始化数据
mysqld —initialize-insecure —user=mysql —basedir=/usr/local/mysql —
datadir=/data/3306/data
启动数据库
/etc/init.d/mysqld start
主库(51)创建复制用户和远程管理用户
mysql -e “create user repl@’10.0.0.%’ identified with mysql_native_password by
‘123’;grant replication slave on . to repl@’10.0.0.%’;”
mysql -e “create user root@’10.0.0.%’ identified with mysql_native_password by
‘123’;grant all on . to root@’10.0.0.%’;”
[root@db01 app]# mysql -e “select user,host,plugin from mysql.user;”
+—————————+—————-+———————————-+
| user | host | plugin |
+—————————+—————-+———————————-+
| repl | 10.0.0.% | mysql_native_password |
| root | 10.0.0.% | mysql_native_password |
| mysql.infoschema | localhost | caching_sha2_password |
| mysql.session | localhost | caching_sha2_password |
| mysql.sys | localhost | caching_sha2_password |
| root | localhost | caching_sha2_password |
[root@db02 data]# mysqldump -uroot -p123 -h 10.0.0.51 -P 3306 -A —master-data=2
—single-transaction -R -E —triggers >/tmp/full.sql
db02 [mysql]>source /tmp/full.sql
课后练习:
通过pxb方式构建主从
启动主从复制
[root@db02 data]# grep “--\ CHANGE MASTER” /tmp/full.sql
— CHANGE MASTER TO MASTER_LOG_FILE=’mysql-bin.000002’, MASTER_LOG_POS=1187; ## 指定主库所使用的binlog日志文件以及pos号必须要指定
[root@db02 data]# mysql -e \
“CHANGE MASTER TO \
MASTER_HOST=’10.0.0.51’,\
MASTER_USER=’repl’, \
MASTER_PASSWORD=’123’, \
MASTER_PORT=3306, \
MASTER_LOG_FILE=’mysql-bin.000002’, \ ##指定主库的binlog日志文件
MASTER_LOG_POS=1187, \ ##指定主库的pos号
3.2 新姿势-通过Clone-plugin搭建传统和GTID主从
a. 主库操作
b. 从库操作
c. 启动主从复制
MASTER_CONNECT_RETRY=10;”
[root@db02 data]# mysql -e “start slave;”
[root@db02 data]# mysql -e “show slave status \G”|grep “Running:”
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
