文章目录

  • 前言`
  • 一、主服务器
  • 二、从服务器
  • 三、同步配置
    • 1.重启并登录主库(Master),创建一个用户用于主从复制,并赋予权限。
    • 2.重启并登录从库(slave),执行从库关联主库的操作
  • 总结


前言`

一、主服务器

windows:mysql 安装目录里面的my.ini(一般位于C:\ProgramData 隐藏目录下面)‘
linux:一般在vi /etc/myf

server_id=1 #服务ID,用于区分服务,范围1~2^32-1
log_bin=master-bin # 打开二进制日志
#MySQL 磁盘写入策略
#此参数有3个值可设置:0、1、2
#0表示每秒刷写一次日志到硬盘,极端情况下MySQL或操作系统挂了最多丢1秒的数据更新
#1表示每次事务提交就写硬盘请求并通知操作系统同步文件到硬件,默认且最安全,性能比0低
#2表示每次事务提交就只写硬盘请求,由操作系统去择机同步文件到硬盘,效率高且比0安全一点(MySQL挂了不丢更新),但当操作系统挂掉,未同步到硬盘的数据更新全丢
innodb_flush_log_at_trx_commit=1 

#当sync_binlog =N (N>0) ,MySQL 在每写 N次 二进制日志binary log时,会使用fdatasync()函数将它的写二进制日志binary log同步到磁盘中去。sync_binlog 的默认值是0,像操作系统刷其他文件的机制一样,MySQL不会同步到磁盘中去而是依赖操作系统来刷新binary log。
sync_binlog=1
#同步数据库
binlog-do-db=db1 
binlog-do-db=db2
#不需要同步的数据库名称
binlog-ignore-db = information_schema
binlog-ignore-db = mysql
binlog-ignore-db = sys
binlog-ignore-db = performance_schema
#复制模式,三种:SBR(基于sql),RBR(基于行),MBR(混合模式)
binlog_format=MIXED #混合模式
expire_logs_days=30 #binlog过期清理时间
max_binlog_size=50M #binlog每个日志文件大小
#错误日志的文件名称
log-error="master-slave.err"

重启

二、从服务器

server_id=2 #服务ID
log_bin=slave-bin # 打开二进制日志
expire_logs_days=30

重启

三、同步配置

1.重启并登录主库(Master),创建一个用户用于主从复制,并赋予权限。

create user master_root identified with mysql_native_password by '123456';
grant replication slave on *.* to 'master_root'@'%';
flush privileges;

查看主服务器Mysql的File列和Positon列

show master status;

2.重启并登录从库(slave),执行从库关联主库的操作

change master to 
master_host='192.168.0.41', -- 主库ip地址
master_port=3306,
master_user='master_root', -- 刚才创建的账号
master_password='123456', -- 密码
master_log_file='master-bin.000005', --主库file文件名
master_log_pos=89125; --主库pos值

启动从节点:

start slave;

查看从库服务状态:

show slave status\G;


两个为yes 已经ok 了;

注:一主多从,同样的道理,建立多个用户,mysql 生成多个线程通道分发同步binlog,注意从库的server_id 服务id不能重复
如果从库建立关系失败的话,先排除原因,取消掉当前建立的从库配置,
在重新建立,执行下面sql;


stop slave;
reset slave all;

常用命令:

start slave; -- 启动从节点
stop slave; -- 停止从节点
reset slave all; -- 清除连接参数
show slave status; --查看连接参数

总结

简单同步完成,当然还得注意很多地方,比如binlog损坏,延迟,阻塞等等问题,这边就不过多赘述了,需要根据具体项目具体解决,希望这篇文章可以帮助到您,点个赞吧亲!

更多推荐

2022 mysql 主从同步复制(新手入门)