当前位置:   article > 正文

mysql8基于GTID(全局事务)主从复制架构搭建_mysql8 gtid

mysql8 gtid

首先在vmware上创建3个cenos7虚拟机,ip分别是:192.168.0.112,192.168.0.113,192.168.0.114,

搭建架构图如下:

1.在3个虚拟机上安装mysql;

2.master机器(192.168.0.112)创建复制用户设置其权限:

  1. mysql> create user 'repl'@'%' identified by 'Repl_123456';
  2. mysql> grant replication slave on *.* to 'repl'@'%';
  3. mysql> flush privileges;

3.配置主从数据库my.cnf

master my.cnf配置内容如下:

  1. [mysqld]
  2. sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
  3. datadir=/var/lib/mysql
  4. socket=/var/lib/mysql/mysql.sock
  5. log-error=/var/log/mysqld.log
  6. pid-file=/var/run/mysqld/mysqld.pid
  7. # 主从复制所需
  8. server_id=1
  9. gtid_mode=ON
  10. enforce-gtid-consistency=ON
  11. #binlog
  12. log_bin=master-binlog
  13. log-slave-updates=1
  14. binlog_format=row
  15. #relay log
  16. skip_slave_start=1
  17. max_connect_errors=1000
  18. default_authentication_plugin = 'mysql_native_password'

slave my.cnf配置文件如下:

  1. [mysqld]
  2. sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
  3. datadir=/var/lib/mysql
  4. socket=/var/lib/mysql/mysql.sock
  5. log-error=/var/log/mysqld.log
  6. pid-file=/var/run/mysqld/mysqld.pid
  7. # 主从复制所需
  8. server_id=2
  9. gtid_mode=ON
  10. enforce-gtid-consistency=ON
  11. # 启动每个副本 ,以确保在配置副本设置之前不会启动复制
  12. skip-slave-start=on
  13. # 指定复制的数据库
  14. replicate-do-db=demo
  15. #binlog
  16. log-bin=slave-binlog
  17. log-slave-updates=1
  18. binlog_format=row #强烈建议,其他格式可能造成数据不一致
  19. #relay log
  20. skip_slave_start=1
  21. default_authentication_plugin = 'mysql_native_password'

 配置完成从起主从mysql:

service mysqld restart

重启后,在slave上尝试链接复制用户是否可以连接成功:

mysql -urepl -pRepl_123456 -h192.168.0.112 -P 3306

如果链接不成功,查看master防火墙是否开发3306端口号,如果未开放开放后再试

4.主从设置:

先在master机器上mysql中执行以下命令查看master状态:

mysql> show master status\G

如图,master的gtid  xxxxx:1-n则设置正确

在slave的mysql中执行下面命令,设置主从关系:

  1. mysql> CHANGE MASTER TO
  2. MASTER_HOST = '192.168.0.112',
  3. MASTER_PORT = 3306,
  4. MASTER_USER = 'repl',
  5. MASTER_PASSWORD = 'Repl_123456',
  6. MASTER_AUTO_POSITION = 1;

 在slave的mysql中启动slave:

mysql> start slave;

在slave的mysql中查看slave状态:

mysql> show slave status\G

如下图,出现两个yes则主从同步设置成功:

 5.注意事项

a.设置过程如果出错,可以重新设置

    在master的mysql中执行:reset master然后删除配置data下的binlog文件;

    在slave的mysql中执行:

         mysql> stop slave;

         mysql> reset slave;

         mysql> start slave;

b.在搭建过程master和slave机器上都应没有需要同步的库,直到搭建成功,才可以在master中创建数据库、创建表、插入数据等操作才会同步到slave库;

   如果master已经存在库了,即是在原库基础上做slave横向扩展,需要先把master数据库备份,然后在新slave上导入,在配置从库同步。

c.每次停止从服务器,再次启动后,需要在slave上mysql中执行start slave,否则不会同步数据。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/937291
推荐阅读
相关标签
  

闽ICP备14008679号