暂无图片
暂无图片
暂无图片
暂无图片
1
暂无图片

MySQL主从复制

原创 2022-05-06
578


show table status from testdb;   show engines;        --查询存储引擎类型

1、Maser主服务器

①my.ini增加配置:

#指定binlog的存储位置,日志格式为二进制

log-bin=/var/lib/mysql/data/binlog/mysql-bin

#[必须]服务器唯一ID,默认是1,多个mysql server,不重复即可

server-id=1

#每次执行写入就与硬盘同步 (如果不配置这个,会等到缓冲区满了自动刷盘, 安全和性能的权衡,配置为1是每次都会刷盘,自然慢一些,自己权衡)

sync-binlog=1

#需要同步的二进制数据库名 (有多个的话,配置多个binlog-do-db)

binlog-do-db=artisan

#只保留7天的二进制日志,以防磁盘被日志占满

expire-logs-days=7

#不备份的数据库(有多个的话,配置多个binlog-ignore-db)

binlog-ignore-db=information_schema

binlog-ignore-db=performation_schema

binlog-ignore-db=sys

#关闭名称解析(非必须)

skip-name-resolve

②创建主从复制用户

# @后面的IP段,建议仅对从服务的网段进行开放

 CREATE USER 'artisan4syn'@'192.168.%.%' IDENTIFIED BY 'artisan';

 grant replication slave,replication client on *.* to artisan4syn@'192.168.%.%' identified by 'artisan';

 FLUSH PRIVILEGES;

③查看master节点binlog文件,Slave使用结果文件和位置开始同步

Show master status;

④备份Master数据同步到Slave服务器

 

2、Slave备份服务器

①my.ini增加配置:

#配置server-id,唯一ID号     

server-id=2  

 

#开启从服务器二进制日志 (从节点如果后面没有级联的从节点,binlog可以不打开,避免无谓的资源消耗)             

#log_bin = /var/lib/mysql/data/binlog/mysql-bin

 

#[必须开启]打开Mysql中继日志,日志格式为二进制                  

relay_log = /var/lib/mysql/data/binlog/mysql-relay-bin    

 

#如果salve库名称与master库名相同,使用本配置     

replicate-do-db = artisan      

 

#如果master库名[artisan]与salve库名[artisan01]不同,使用以下配置[需要做映射]     

#replicate-rewrite-db = artisan[主库名] -> artisan01[从库名]    

 

#如果不是要全部同步[默认全部同步],则指定需要同步的表   

#replicate-wild-do-table=artisan01.t_order    

#replicate-wild-do-table=artisan01.t_order_item

 

#设置只读权限

read_only = 1  

 

#使得更新的数据写进二进制日志中       

log_slave_updates = 1   (这个是不是应该为 on 待确认 , 给GTID用的? 5.7以下的版本 使用GTID必须要开启  )

②恢复数据

③根据Master节点的binlog文件,在Slave设置同步关系

#关闭线程

stop slave;

 

change master to master_host='192.168.18.131', master_user='artisan4syn',  master_password='artisan',  master_log_file='mysql-bin.000045',  master_log_pos=1308;

 

#启动线程

start slave;

 

状态查询常用命令

Show slave status\G;

Show processlist \G;

 

binlog命令

# 查看是否开启binlog

mysql>show binary logs;

#查看binlog格式:

mysql>show variables like 'binlog_format';

#获取binlog文件列表:

mysql>show binary logs;

#查看当前正在写入的binlog文件:

mysql>show master status;

#查看master上的binlog:

mysql>show master logs;

#只查看第一个binlog文件的内容:

mysql>show binlog events;

#查看指定binlog文件的内容:

mysql>show binlog events in 'mysql-bin.000045';

#清空所有的bin-log:

mysql>reset master;

#生成一个新的binlog:

mysql>flush logs;

 

使用mysqlbinlog查看binlog文件

mysqlbinlog mysql-bin.000045

最后修改时间:2022-05-19 17:28:37
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

墨天轮福利君
暂无图片
2年前
评论
暂无图片 0
❤️您好,您的文章中有sql语句,可以查看Markdown手册后更改:https://www.modb.pro/db/181712。
2年前
暂无图片 点赞
评论