MySQL主从复制过程

1、主库操作:

修改数据库配置文件

liunx的my.cnf文件; windows系统的my.ini文件

[mysqld]
# 最大链接数
max_connections=1000 
#主库----start--- 同一局域网内注意要唯一
server-id=100
#开启二进制日志功能,可以随便取(关键)
log-bin=mysql-bin
 #记录的数据库(多数据库用逗号,隔开)
binlog-do-db = test
#忽略数据库 (多数据库用逗号,隔开)
binlog-ignore-db = test2
主库----end---

#以下为可选配置
#设置存储模式不设置默认 
binlog_format=row 
#日志清理时间 
expire_logs_days=7 
#日志大小 
max_binlog_size=1000m 
# 缓存大小 
binlog_cache_size=4m 
#最大缓存大小 
max_binlog_cache_size=521m 

命令:

#创建用户
GRANT FILE ON *.* TO 'test'@'%' IDENTIFIED BY '123456';
#赋权限
GRANT REPLICATION SLAVE ON *.* TO 'test'@'%' IDENTIFIED BY '123456';
#刷新
FLUSH PRIVILEGES;
#重启服务
service mysqld restart;

#查看是否设置成功
show master status;
注:test和123456设置为你自己的用户名密码

如果能看到类似信息,代表设置成功。主库完成操作。
在这里插入图片描述

2、从库操作

修改从库配置文件

[mysqld]
#从库----start--- 
#设置server_id,注意要唯一
server-id=101
#开启二进制日志功能,以备Slave作为其它Slave的Master时使用
log-bin=mysql-slave-bin
# relay_log配置中继日志
relay_log=edu-mysql-relay-bin
# 配置是否写入自身bin-log。如果使用从库作为master再向下同步,必须填写
log-slave-updates=1
# 同步的模式
binlog-format=row
# 同步的库
replicate-do-db=test
# 同步的表
replicate-wild-do-table=test.tab1
replicate-wild-do-table=test.tab1
配置项说明:

replicate-do-db #设定需要复制的数据库(多数据库使用逗号,隔开)
replicate-ignore-db #设定需要忽略的复制数据库 (多数据库使用逗号,隔开)
replicate-do-table #设定需要复制的表
replicate-ignore-table #设定需要忽略的复制表
replicate-wild-do-table #同replication-do-table功能一样,但是可以通配符
replicate-wild-ignore-table #同replication-ignore-table功能一样,但是可以加通配符
replicate-rewrite-db #重写库名 用于主库和从库不一致的场景

注:server_id 和主库不能相同,保持唯一

命令:

#重启
service mysqld restart;
#停止同步
stop slave;
#配置同步信息
change master to master_host='192.168.0.1',master_port=308,master_user='test',master_password='123456',master_log_file='mysql-bin.000003', master_log_pos=153722; 
# 开始同步
start slave;
#显示状态
show slave status;

如图,两个yes,代表设置成功。

在这里插入图片描述

问题记录

1. 都设置完成,查看也没问题。数据却没同步

原因:主库和从库数据库名称不一致。
解决方案:修改从库配置,重启;
#重命名数据库
replicate-rewrite-db = db1 -> db2

2. 只同步一条,第二条记录就不同步了,

原因:可能是没有设置忽略错误
解决方案: 查看是否配置略过错误:
slave-skip-errors=all

  • 33
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值