Mysql主从复制

MYSQL主从复制:

至少两台数据库服务器,分别可以设置为主服务器和从服务器,对主服务器的任何操作都会同样复制到从服务器上。

MYSQL主从复制原理:

MYSQL中有一种日志,叫做Bin日志(二进制日志),会记录下所有修改过数据库的SQL语句。主从复制的原理实际就是多台服务都开启BIN日志,然后主服务器会把执行过的SQL语句记录到BIN日志中,之后把这个BIN日志发给从服务器,在从服务器再把BIN日志中记录的SQL语句同样的执行一遍。这样从服务器上的数据就和主服务器相同了。


image.png
主从两形式:

一、发射形(一主多从):备份数据、读写分离

image.png

二、环形(多主)

image.png

适合场景:当一个网站要考虑跨地域优化时可以用来同步数据:

多地区时需要考虑:数据库同步、文件同步(linux自带的一个程序rsync)

解决ID冲突的办法:把每台服务器的ID都不同:可以设置ID开始的数字和每次加几:修改MYSQL配置文件:

auto_increment_increment=3 ; 每次加几

auto_increment_offset=1 ; 第一个数从几开始

实际搭建主从:
主服务器:192.168.30.135
从服务器:192.168.30.136

  1. 开启主服务bin日志且设置服务ID
    找到/etc/my.cny
log-bin=mysql-bin //开启bin日志
server-id=135 //设置主服务ID,每台ID是唯一的
  1. 开启从服务bin日志且设置服务ID
    找到/etc/my.cny
log-bin=mysql-bin //开启bin日志
server-id=136 //设置主服务ID,每台ID是唯一的

在主服务器上创建一个用来同步数据的账号

grant replication slave on *.* to 'slave'@'%' indentified by '666666'
image.png
  1. 查看主服务器BIN日志的信息(执行完之后记录下这两值,然后在配置完从服务器之前不要对主服务器进行任何操作,因为每次操作数据库时这两值会发生改变)


    image.png
  2. 设置从服务器:

登录MYSQL

image.png

先关闭从服务器(每次重新配置时需要先关闭)


image.png

开始配置:

image.png

启动从服务器:

image.png

查看有没有成功:


image.png

注意:

在配置之前的数据库不会同步过去。解决办法:在配置之前先手动的把所有的原数据库导出到从服务器中。

失败:

  1. 肯定是SQL语句哪里写错
  2. 主从服务器的MYSQL版本号必须相同。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容