中国网络水泥 发表于 2018-10-5 09:39:16

配置MySQL GTID 主从复制

  1、更简单的实现failover,不用以前那样在需要找log_file和log_pos。
  2、更简单的搭建主从复制。
  3、比传统的复制更加安全。
  4、GTID是连续的没有空洞的,保证数据的一致性,零丢失。
  在slave端执行以下操作 (普通主从复制)——可参考http://blog.51cto.com/yangkui/2135027
  (root@localhost) [(none)]> CHANGE MASTER TO
  ->MASTER_HOST='192.168.1.135',
  ->MASTER_USER='repl',
  ->MASTER_PASSWORD='xxx',
  ->MASTER_PORT=3306,
  ->MASTER_AUTO_POSITION = 1;
  Query OK, 0 rows affected, 2 warnings (0.01 sec)
  (root@localhost) [(none)]> start slave;
  Query OK, 0 rows affected (0.01 sec)
  (root@localhost) [(none)]> show slave status \G ###可以看到复制工作已经开始且正常
   1. row
  Slave_IO_State: Waiting for master to send event
  Master_Host: 192.168.1.135
  Master_User: repl
  Master_Port: 3306
  Connect_Retry: 60
  Master_Log_File: master-binlog.000001
  Read_Master_Log_Pos: 151
  Relay_Log_File: slave-relay-log.000002
  Relay_Log_Pos: 369
  Relay_Master_Log_File: master-binlog.000001
  Slave_IO_Running: Yes
  Slave_SQL_Running: Yes
  

修改配置文件  
1、主:
  

  
  #GTID:
  server_id=135                #服务器id
  gtid_mode=on               #开启gtid模式
  enforce_gtid_consistency=on#强制gtid一致性,开启后对于特定create table不被支持
  #binlog
  log_bin=master-binlog
  log-slave-updates=1
  binlog_format=row            #强烈建议,其他格式可能造成数据不一致
  #relay log
  skip_slave_start=1
  2、从:
  
  #GTID:
  gtid_mode=on
  enforce_gtid_consistency=on
  server_id=143
  #binlog
  log-bin=slave-binlog
  log-slave-updates=1
  binlog_format=row      #强烈建议,其他格式可能造成数据不一致
  #relay log
  skip_slave_start=1b、所有服务器设置global.read_only参数,等待主从服务器同步完毕;
  mysql> SET @@global.read_only = ON;
  c、依次重启主从服务器;
  d、使用change master 更新主从配置;
  mysql> CHANGE MASTER TO

  MASTER_HOST = host,
  MASTER_PORT = port,
  MASTER_USER = user,
  MASTER_PASSWORD = password,
  MASTER_AUTO_POSITION = 1;
  e、从库开启复制
  mysql> START SLAVE;
  f、验证主从复制



页: [1]
查看完整版本: 配置MySQL GTID 主从复制