mysql 主从库配置详解

参考资料

  • 有关mysql的innodb_flush_log_at_trx_commit参数
    https://blog.csdn.net/codepen/article/details/52160715
  • Mariadb二进制日志binlog详解
    https://www.cnblogs.com/skymyyang/p/7798670.html
  • 二进制日志相关命令
    https://www.fujieace.com/mysql/bin-log.html

低级版配置

一个主服务器 一个从服务器
1.master配置

  • 修改etc/my.cnf文件
[mysqld]
server-id=1
log_bin=master-bin
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
binlog-ignore-db=test
innodb_flush_log_at_trx_commit=1
binlog_format=mixed

一定要加在[mysqld]之下
参数含义解释:

[mysqld]                            服务端基本设置
server-id                           mysql实例的唯一标记
log_bin=master-bin                  开启二进制日志
binlog-ignore-db                    忽略的数据库二进制日志
binlog_format                       设置二进制日志格式
innodb_flush_log_at_trx_commit      innodb磁盘写入策略
  • 添加备份账号
mysql> grant replication slave on *.* to 'backup'@'%' identified by '123456';
mysql> flush privileges;

replication slave 拥有该权限的用户才可以进行复制

  • 重启mariadb
service mariadb restart
  • 查看记录log_bin 和pos

image

2.slave配置

  • 修改/etc/my.cnf文件
[mysqld]
server-id=2
relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin
relay_log_recovery=1

参数解释:

relay-log-index=slave-relay-bin.index       开启中继日志
relay-log=slave-relay-bin
relay_log_recovery            当slave从库宕机后,假如relay-log损坏了,导致一部分中继日志没有处理,则自动放弃所有未执行的relay-log,并且重新从master上获取日志,这样就保证了relay-log的完整性。默认情况下该功能是关闭的,将relay_log_recovery的值设置为 1时,可在slave从库上开启该功能,建议开启。

  • 重启mariadb
  • 配置slave相关参数
mysql> stop slave;
mysql> change master to 
       master_host='master IP',
       master_user='backup',
       master_password='123456',
       master_log_file='master-bin.000001',
       master_log_pos=245;
 mysql> start slave;

参数解释

master_log_file         读取的是哪一个二进制日志
master_log_pos          二进制日志读取的地方(从哪个地方开始)
  • 查看是否配置成功
mysql> show slave status\G
发布了21 篇原创文章 · 获赞 2 · 访问量 6598

猜你喜欢

转载自blog.csdn.net/qq_36638446/article/details/104171508