MySQL主从

参考:

https://cloud.tencent.com/developer/article/1434695 (推荐)
https://zhuanlan.zhihu.com/p/335142300
https://juejin.cn/post/7070290856967667742

  1. 两台服务器,mysql版本必须一致
  2. 修改my.cnf文件参数
[root@mysql51 ~]# vim /etc/my.cnf
[mysqld]
log_bin=kyyyj-mysql-bin     # 开启二进制日志 binlog-name
server_id=1  # 设置服务器id 主从id不可重复
expire_logs_days=7 # 日志过期删除时间
binlog_format=mixed # 主从复制模式:基于SQL语句的复制与基于行的复制混合
# 在主库上指定记录二进制日志的库或忽略的库(任选其一即可)
# binlog-do-db      二进制日志记录的数据库(多数据库用逗号,隔开)
# binlog-ignore-db 二进制日志中忽略数据库 (多数据库用逗号,隔开)
# 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功能一样,但是可以加通配符
[root@localhost]# systemctl restart mysqld    # 重启mysql使设置生效
  1. 设置主从同步前,保证master和slave的数据一致。
## 导出 Master 库的时候进行锁表,导完后再解锁。
[root@master ~]# mysql -u root -proot
mysql> flush tables with read lock;
[root@master ~]# mysqldump --all-databases -uroot -proot > all_databases.sql
[root@master ~]# mysql -uroot -proot 
mysql> unlock tables;
# 复制Master的备份本机到slave服务器
[root@master ~]# scp all_databases.sql root@192.168.1.9:/slave服务器保存路径
########################################

## slave从库导入数据
#方式一
[root@minion ~]# mysql -uroot -proot -hlocalhost -P3306 --default-character-set=utf8 < all_databases.sql
#方式二
[root@minion ~]#  mysql -uroot -proot
mysql>source /root/all_databases.sql;

########################################
# 连接 Master 服务器
mysql>change master to master_host='192.168.5.5',master_user='replication',master_password='211212',master_log_file='master-bin.000001',master_log_pos=107;

########################################
# 启动从服务器(复制线程)
mysql> start slave;
Query OK, 0 rows affected (0.00 sec)
# 查看主从状态
mysql>show slave status \G;
# 下面两项必须都是yes才表示配置成功,否则必须stop slave 检查配置修改正确后再次start slave
Slave_IO_Running: Yes       
Slave_SQL_Running: Yes

其他

# 是否启用binlog日志
show variables like 'log_bin';

# 查看详细的日志配置信息
show global variables like '%log%';

# 查看所有二进制日志列表
show master logs; 或 show binary logs;

# 查看最新一个binlog日志文件名称和Position
show master status;

# 查看 binlog 内容
show binlog events;

# 查看具体一个binlog文件的内容 (in 后面为binlog的文件名)
show binlog events in 'master.000003';
#https://juejin.cn/post/7135363385700384799


#mysqldump全量备份+mysqlbinlog二进制日志增量备份
#https://www.cnblogs.com/shamo89/p/9766228.html

#从库设置只读
set global read_only=1;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

௸ೄ流年ೄ೨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值