部署环境:
- centos7.2.1511
- community mysql-5.7.22
- 已经搭建好mysql服务
注:以下主从配置是基于GTID模式以及半同步模式
需要注意不能使用以下几点:
使用 create table … select 语句方法
在事务中使用Create temporary table 建立事务表以及非事务表
使用关联更新事务表核非事务表
- 主从架构
- master[M:10.0.1.201]
- slave01[S2:10.0.1.202]
- slave02[S2:10.0.1.203]
- salve03[S3:10.0.1.204]
部署搭建:
- 配置半同步
注: 主从配置需要主库开启binlog日志
配置server-id server-id 不能一致
gtid模式 需要添加gtid_mode=on 表示启动gitd模式。
- 在SQL终端安装MySQL半同步插件并启动
install plugin rpl_semi_sync_master soname 'semisync_master.so';
set global rpl_semi_sync_master_enabled=1;
INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
set global rpl_semi_sync_slave_enabled=1;
- 主服务器配置my.cnf增加信息
log-bin=mysql-bin
server_id = 100
gtid_mode = on
enforce-gtid-consistency
log-slave-updates = on
rpl_semi_sync_master_enabled=1
rpl_semi_sync_master_timeout=1000
- 从服务器配置my.cnf增加信息
server_id = 101
log-bin=mysql-bin
gtid_mode = on
enforce-gtid-consistency
log-slave-updates = on
read_only = on
master_info_repository = TABLE
relay_log_info_repository =TABLE
rpl_semi_sync_slave_enabled=1
rpl_semi_sync_master_wait_point = AFTER_SYNC
配置步骤:
- 创建同步账号
grant replication slave on *.* to 'sync'@'10.0.1.%' identified by '123123';
- 从主数据库导出
mysqldump --single-transaction --master-data=2 --triggers --routines \
--all-databases -uroot -proot > all.sql
- 传到所有的从数据库并导入
注: 可以使用SCP推送到各个从库上面去,其它从服务器可以继续按照以下方式进行推送。如果是多实例本机直接可以指定sock导入即可。如果有做SSH认证可以忽略输入密码,如果第一次连接从服务器需要输入”yes” 再次输入密码。
- 推送到从服务器
scp all.sql root@10.0.1.202:~
scp all.sql root@10.0.1.203:~
scp all.sql root@10.0.1.204:~
- 在所有的从库导入数据库
mysql -uroot -proot -f <all.sql