centos7 部署MySQL主从同步

前提

MySQL服务器准备两台:
1、Master:192.168.100.130
2、Slave: 192.168.100.133
端口默认3306
 

配置过程:

一、主库配置:

1、编辑配置文件:
 
$ vim /etc/my.cnf
 
添加以下内容:
 
################################################
# MySQL主从配置,主节点ip地址后三位
server-id=130

# 配置不需要复制的库mysql
replicate-ignore-db=mysql
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
replicate-ignore-db=sys

# 标记出需要同步的数据库名,在多从配置时可以按需配置
#replicate_do_db=table_name

# 可以配置的值:0/1/2;
# 0、效率最高,最不安全;
# 1、最安全,但是效率最低;
# 2、安全和效率平衡的取舍,在服务器系统挂掉的情况下会丢失数据;
innodb_flush_log_at_trx_commit=2

# 每进行n次事务提交之后,MySQL将binlog_cache中的数据强制写入磁盘。
sync_binlog=1000

# 根据实际情况决定开启多少个线程用于主从复制
slave_parallel_workers=4

# 基于组提交的并行复制方式
slave_parallel_type=logical_clock

master_info_repository=TABLE
relay_log_info_repository=TABLE

# 避免由于从库relay log损坏导致的主从不一致的情形
relay_log_recovery=ON

# 启动MySQL二进制日志,即数据同步语句,从数据库会一条一条的执行这些语句。
log_bin=master-bin.log
log_bin_index=master-bin.index
################################################

2、主节点配置过程,创建用于主从同步的账户:

# 登录MySQL
$ mysql -u root -p    
 
# 创建测试用户testuser,5.7要求密码必须含有大小写英文,符号和数字(密码:aA123456/)
mysql> create user 'testuser'@'%' identified by 'aA123456/';
 
# 赋予FILE权限,允许从从库ip(192.168.100.133)访问主库(192.168.100.130)
mysql> grant FILe on *.* to 'testuser'@'192.168.100.133' identified by 'aA123456/';
 
# 赋予主从同步权限
mysql> grant replication slave on *.* to 'testuser'@'192.168.100.133' identified by 'aA123456/';
 
# 刷新MySQL的新用户的系统权限相关表
mysql> flush privileges;
 
# 重启mysql
$ systemctl restart mysqld
 
 

二、从库配置:

1、编辑配置文件:
$ vim /etc/my.cnf
 
添加以下内容:
 
################################################
# MySQL主从配置,从节点ip地址后三位
server-id=133

# 配置不需要复制的库mysql
replicate-ignore-db=mysql
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
replicate-ignore-db=sys

# 标记出需要同步的数据库名,在多从配置时可以按需配置
#replicate_do_db=table_name

# 可以配置的值:0/1/2;
# 0、效率最高,最不安全;
# 1、最安全,但是效率最低;
# 2、安全和效率平衡的取舍,在服务器系统挂掉的情况下会丢失数据;
innodb_flush_log_at_trx_commit=2

# 每进行n次事务提交之后,MySQL将binlog_cache中的数据强制写入磁盘。
sync_binlog=1000

# 根据实际情况决定开启多少个线程用于主从复制
slave_parallel_workers=4

# 基于组提交的并行复制方式
slave_parallel_type=logical_clock

master_info_repository=TABLE
relay_log_info_repository=TABLE

# 避免由于从库relay log损坏导致的主从不一致的情形
relay_log_recovery=ON

# 启动MySQL二进制日志,即数据同步语句,从数据库会一条一条的执行这些语句。
log_bin=slave-bin.log
log_bin_index=slave-bin.index
################################################

2、从节点配置过程:

# 登录mysql
$ mysql -u root -p
 
# 关闭从库
mysql> stop slave;
 
# 配置主库信息:ip,用户,密码
# 日志参数(show master status; # 查看主库的状态中的File参数,参数动态
# 主服务器positon参数(show master status; # 查看主库的状态中的position参数,参数动态
mysql> change master to master_host='192.168.100.130', master_user='testuser',master_password='aA123456/', master_log_file='master-bin.000001', master_log_pos=154;
 
# 开启从库
mysql> start slave;
 
# 再次查看
mysql> show slave status \G;
 
 
 
# Slave_IO_Running,Slave_SQL_Running 都为Yes的时候表示配置成功
 
 

验证主从

主库上操作如下:
每一步操作走可以在主从库两边对照。从节点对应生成数据库、表、更新等操作
#  也可以使用Navicat同时链接主从库对照。
 
mysql> create database springdemo;
mysql> use springdemo;
mysql> create table test_table(id int(3),name char(10));
mysql> insert into test_table values(1,'one');
mysql> show databases;
 
 
1. 对于Slave_SQL_Running:no或slave_io_running:no的问题,可以参考此链接: https://blog.csdn.net/HeyShHeyou/article/details/109628068
 
2. 对于Slave_SQL_Running:no的情况,可以尝试多试几次上述链接中的第三点的操作:
MariaDB [(none)]> stop slave;
MariaDB [(none)]> SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; 
MariaDB [(none)]> start slave;
MariaDB [(none)]> show slave status\G;
 
 

参考链接

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值