wsjz_01 发表于 2018-10-6 08:57:41

mysql主从复制技术详解

  M-S
  主服务器:master1
  第一步:打开bin-log日志,设置如下:
  vim /etc/my.cnf
  log_bin
  server-id=1
  gtid_mode=ON
  enforce_gtid_consistency=1
  第二步:进入数据库授权用户
  mysql -uroot -p'密码'

  grant replication slave,replication client no . to 'rep'@'域名'>  flush privileges;
  查看slave状态是否正常:
  show slave status\;
  第三步:复制
  cd
  mysqldump -uroot -p'密码' \
  -A \
  --single-transaction \
  --master-data=2 \
  --flush-logs \
  ./date +%F-all.sql
  scp ./-all.sql 域名:/root
  从服务器:master2
  第一步:回复之前的数据
  mysql -uroot -p'密码'
  set sql_log_bin=0;
  source /root/all.sql;
  第二步:设置主服务器
  change master to
  master_host='master1',
  master_user='rep',
  master_password='密码',
  master_auto_position=1;
  注意;如果设置错误后可以这样处理————>> stop slave; reset slave ; OK以后就可以从新在配置一遍,完好start slave ;即可。
  第三步:启动slave;
  start slave;
  查看状态
  show slave status\G;
  注意这是接着上一个实验的升级:
  如果是做成M-M 的话,只需要把上面主服务器上设置一下从服务器的配置即可
  mysql -uroot -p'密码'
  change master to
  master_host='master2',
  master_user='rep',
  master_password='密码',
  master_auto_position=1;
  启动slave;
  start slave;
  查看状态
  show slave status\G;
  继续上面的实验环境接着往下完成:
  首先去其中任意一个主服务器上备份一个元数据,完好通过scp 分别拷贝到另外两台从服务器上,接下来对从服务器做如下操作:
  第一步:关闭selinux关闭firewalld
  第二步:设置/etc/my.cnf中添加
  server-id=3
  gtid_mode=ON
  enforce_gtid_consistency=1
  master_info_repository=TABLE
  relay_log_info_repository=TABLE
  第三步:重启mysqld
  S-S
  登录mysql
  进去第一件事就是 把主服务器上发过来的数据恢复:
  set sql_log_bin=0;
  source 后面更上要恢复的文件路径及名称;
  OK以后,接下来配置它的slave:
  change master to
  master_host='master1'(这里写主服务器的域名)
  master_user='rep'(这里写主服务器上授权的用户名)
  master_password='123'(这里写主服务器上授权的密码)
  master_auto_position=1 for channel 'master1'(这里的名字可以自定义);
  OK以后,如果你有多个主服务器可以在做一次:
  change master to
  master_host='master2'(这里写主服务器的域名)
  master_user='rep'(这里写主服务器上授权的用户名)
  master_password='123'(这里写主服务器上授权的密码)
  master_auto_position=1 for channel 'master1'(这里的名字可以自定义);
  这个技术的常见问题点有如下三点:
  /etc/selinux/config 中没有关掉selinux
  /etc/my.cnf 中没有打开二进制文件
  firewalld没有关掉。
  如果另外一台机器是克隆来的话,就是uuid相同的问题,只需要到
  /var/lib/mysql/auto.cnf 中把它的uuid 改成与其它机器不同即可.

页: [1]
查看完整版本: mysql主从复制技术详解