nescafeboy1 发表于 2018-10-6 11:53:47

mysql AB复制 MS复制

  AB复制:主服务器通过修改mysql配置文件,搭建同步环境,使从服务器能够同步主服务器的数据库。
  注意:主从服务器都需要关闭防火墙。
  主服务器:
  修改mysql配置文件,永久产生日志
  #vim /etc/my.cnf
  log-bin='masterlog'
  server-id=1
  创建账户:

  mysql>grant replication slave,reload,super on *.* to 'slave'@'%'>  mysql>flushreplication slave;
  replication slave:
  拥有此权限可以查看从服务器,从主服务器读取二进制日志。
  super权限:
  允许用户使用修改全局变量的SET语句以及CHANGEMASTER语句

  >  必须拥有reload权限,才可以执行flush privileges;
  slave:用户名,可以自己本身定义
  %:工作环境中,一般写从服务器的ip,或者做了本地解析之后,直接写域名。
  #systemctl restart mysqld
  从服务器:
  修改mysql配置文件:
  #vim /etc/my.cnf
  
  server-id=2
  log-bin=slavelog    //写不写看需求(双主的时候必须写,使用gtid复制方式必须写)
  #systemctl restart mysqld
  指定主服务器信息
  mysql>help change master to
  mysql>CHANGE MASTER TO
  MASTER_HOST='master2.example.com',//主服务器ip
  MASTER_USER='replication',                      //主服务器用户
  MASTER_PASSWORD='password',            //用户密码
  MASTER_PORT=3306,                                  //端口
  MASTER_LOG_FILE='master2-bin.001',      //binlog日志文件名称
  MASTER_LOG_POS=4,                                  //日志位置
  MASTER_CONNECT_RETRY=10;               //如果同步失败的尝试次数
  mysql>start slave;
  mysql>show slave status\G
  同步完成之后,进行测试,如果没有成功,删除从binlog日志,重启服务
  但是此方法,需要指定主配置文件的日志名称,日志位置,比较繁琐。
  可以采用gtid方式,让其自动寻找同步点:
  需要在主从服务器配置文件中开启gtid功能:
  主动配置都需要添加:
  #vim /etc/my.cnf
  gtid_mode=on
  enforce_gtid_consistency=1
  从服务器只需要以下配置:
  mysql>CHANGE MASTER TO
  MASTER_HOST='master2.example.com',//主服务器ip
  MASTER_USER='replication',                      //主服务器用户
  MASTER_PASSWORD='password',            //用户密码
  MASTER_PORT=3306,                                  //端口
  MASTER_AUTO_POSITION=1
  完成以后,进行测试,如果不能同步,删除从服务器的binlog,重启服务。

页: [1]
查看完整版本: mysql AB复制 MS复制