MySQL主从复制配置
MySQL主从复制配置
文森特梵高 发表于3年前
MySQL主从复制配置
  • 发表于 3年前
  • 阅读 55
  • 收藏 4
  • 点赞 0
  • 评论 0

【腾讯云】买域名送云解析+SSL证书+建站!>>>   

MySQL主从复制用于读写分离,主库负责写,从库负责读。这样无疑会让数据库提供更高的并发性能。

配置主从复制后,主库记录二进制日志到本地,从库读取主库的二进制文件并保存到本地的中继日志文件,然后重做日志达到同步数据的结果。

主库配置

1、创建复制用户

从库通过此用户身份在主库拉二进制日志。

GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO slave_1@'%' IDENTIFIED BY 'gechong';

2、主库配置

修改my.cnf

server-id=1   #必须有 而且必须唯一
log-bin=/var/log/mysql/mysql_bin.log  #二进制文件的路径
binlog-do-db=employees   #需要记录二进制日志的库
binlog-ignore-db=mysql,information_schema  #忽略的库
sync_binlog=1    #即时记录,防止事务未提交而丢失二进制日志

备库配置

1、备库配置

修改my.cnf文件

server-id=2
log-bin=/var/log/mysql/mysql_bin.log
log-slave-updates=1
read-only=1   #阻止任何没有特权权限的线程修改数据,避免与主库的数据冲突

replicate-do-db=employees
replicate-ignore-db=mysql,information_schema


2、启动复制

在mysql中运行

stop slave; --首先关闭
change master to master_host='IP',
master_user='slave_1',
master_password='123456',
master_log_file='mysql_bin.000006',
master_log_pos=106;
start slave; --启动

如果slave_io_running和slave_sql_running都是yes,配置成功。



注意事项

关于mysql主从配置的简单介绍到此。除此之外,关于这个主题还有不少值得注意的关键点。

复制的方式

复制的方式分为基于行的 和基于语句的。

基于语句的方式(5.0以及之前的版本支持),因为从库重做语句有时间差,所以对于时间戳会有误差。

基于行的方式会将实际数据记录到二进制文件,克服了以上类似的弊端。


主库和从库数据冲突

从库主要是用作读取数据,与主库同步。如果随意修改从库,很可能造成数据的冲突和不一致。

在从库中配置 read_only=1 能有效避免。


数据库崩溃造成事件丢失

sync_binlog=1

该配置作用是,mysql每次提交事务前会将二进制日志同步到磁盘,防止数据库崩溃造成丢失。


总结

除了一主一从之外,还能允许一主多从的结构。这样无疑对与少量写大量读的系统十分有用。

1)灾难恢复,将一台从服务器部署到远端,能防火防震防盗防水灾。


  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 2
博文 24
码字总数 15386
×
文森特梵高
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: