(window.webpackJsonp=window.webpackJsonp||[]).push([[300],{654:function(s,a,t){"use strict";t.r(a);var r=t(0),n=Object(r.a)({},(function(){var s=this,a=s._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[a("h1",{attrs:{id:"_1、介绍"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#_1、介绍"}},[s._v("#")]),s._v(" 1、介绍")]),s._v(" "),a("blockquote",[a("p",[s._v("MySQL Group Replication（简称MGR）是MySQL官方于2016年12月推出的一个全新的高可用与高扩展的解决方案。MySQL组复制提供了高可用、高扩展、高可靠的MySQL集群服务。")]),s._v(" "),a("ul",[a("li",[s._v("高一致性，基于原生复制及paxos协议的组复制技术，并以插件的方式提供，提供一致数据安全保证；")]),s._v(" "),a("li",[s._v("高容错性，只要不是大多数节点坏掉就可以继续工作，有自动检测机制，当不同节点产生资源争用冲突时，不会出现错误，按照先到者优先原则进行处理，并且内置了自动化脑裂防护机制；")]),s._v(" "),a("li",[s._v("高扩展性，节点的新增和移除都是自动的，新节点加入后，会自动从其他节点上同步状态，直到新节点和其他节点保持一致，如果某节点被移除了，其他节点自动更新组信息，自动维护新的组信息；")]),s._v(" "),a("li",[s._v("高灵活性，有单主模式和多主模式，单主模式下，会自动选主，所有更新操作都在主上进行；多主模式下，所有server都可以同时处理更新操作。")])]),s._v(" "),a("p",[s._v("MGR是MySQL数据库未来发展的一个重要方向。")]),s._v(" "),a("p",[s._v("MGR基础结构要求：")]),s._v(" "),a("p",[s._v("引擎必须为innodb,因为需事务支持在commit时对各节点进行冲突检查")]),s._v(" "),a("p",[s._v("每个表必须有主键，在进行事务冲突检测时需要利用主键值对比")]),s._v(" "),a("p",[s._v("必须开启binlog且为row格式")]),s._v(" "),a("p",[s._v("开启GTID，且主从状态信息存于表中（--master-info-repository=TABLE 、--relay-log-info-repository=TABLE），--log-slave-updates打开")]),s._v(" "),a("p",[s._v("一致性检测设置--transaction-write-set-extraction=XXHASH64")]),s._v(" "),a("p",[s._v("MGR使用限制：")]),s._v(" "),a("p",[s._v("RP和普通复制binlog校验不能共存，需设置--binlog-checksum=none")]),s._v(" "),a("p",[s._v("不支持gap lock(间隙锁)，隔离级别需设置为read_committed")]),s._v(" "),a("p",[s._v("不支持对表进行锁操作（lock /unlock table）,不会发送到其他节点执行 ,影响需要对表进行加锁操作的情况，列入mysqldump全表备份恢复操作")]),s._v(" "),a("p",[s._v("不支持serializable(序列化)隔离级别")]),s._v(" "),a("p",[s._v("DDL语句不支持原子性，不能检测冲突，执行后需自行校验是否一致")]),s._v(" "),a("p",[s._v("不支持外键：多主不支持，单主模式不存在此问题")]),s._v(" "),a("p",[s._v("最多支持9个节点：超过9台server无法加入组")])]),s._v(" "),a("h1",{attrs:{id:"_2、环境准备"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#_2、环境准备"}},[s._v("#")]),s._v(" 2、环境准备")]),s._v(" "),a("p",[s._v("2.1 数据库服务器规划")]),s._v(" "),a("table",[a("thead",[a("tr",[a("th",[s._v("ip地址")]),s._v(" "),a("th",[s._v("主机名")]),s._v(" "),a("th",[s._v("数据库")]),s._v(" "),a("th",[s._v("端口号")]),s._v(" "),a("th",[s._v("server Id")])])]),s._v(" "),a("tbody",[a("tr",[a("td",[s._v("10.10.10.68")]),s._v(" "),a("td",[s._v("host68")]),s._v(" "),a("td",[s._v("mysql-5.7.20")]),s._v(" "),a("td",[s._v("3306")]),s._v(" "),a("td",[s._v("100")])]),s._v(" "),a("tr",[a("td",[s._v("10.10.10.69")]),s._v(" "),a("td",[s._v("host69")]),s._v(" "),a("td",[s._v("mysql-5.7.20")]),s._v(" "),a("td",[s._v("3306")]),s._v(" "),a("td",[s._v("101")])]),s._v(" "),a("tr",[a("td",[s._v("10.10.10.70")]),s._v(" "),a("td",[s._v("host70")]),s._v(" "),a("td",[s._v("mysql-5.7.20")]),s._v(" "),a("td",[s._v("3306")]),s._v(" "),a("td",[s._v("102")])])])]),s._v(" "),a("p",[s._v("2.2 安装mysql5.7.20")]),s._v(" "),a("p",[s._v("在这里就不详细介绍。")]),s._v(" "),a("p",[s._v("2.3 设置hostname和ip映射")]),s._v(" "),a("div",{staticClass:"language-bash line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-bash"}},[a("code",[a("span",{pre:!0,attrs:{class:"token number"}},[s._v("10.10")]),s._v(".10.68 host68.cn\n"),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("10.10")]),s._v(".10.69 host69.cn\n"),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("10.10")]),s._v(".10.70 host70.cn\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br")])]),a("p",[s._v("在三台数据库服务器上都设置：")]),s._v(" "),a("h1",{attrs:{id:"_3、创建复制环境"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#_3、创建复制环境"}},[s._v("#")]),s._v(" 3、创建复制环境")]),s._v(" "),a("p",[s._v("3.1 服务器host68.cn")]),s._v(" "),a("p",[s._v("3.1.1 配置/etc/my.cnf")]),s._v(" "),a("div",{staticClass:"language-bash line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-bash"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function"}},[s._v("vim")]),s._v(" /etc/my.cnf\n\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("mysqld"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# Group Replication")]),s._v("\nserver_id "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("100")]),s._v("  "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#服务ID")]),s._v("\ngtid_mode "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" ON  "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#全局事务")]),s._v("\nenforce_gtid_consistency "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" ON  "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#强制GTID的一致性")]),s._v("\nmaster_info_repository "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" TABLE  "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#将master.info元数据保存在系统表中")]),s._v("\nrelay_log_info_repository "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" TABLE  "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#将relay.info元数据保存在系统表中")]),s._v("\nbinlog_checksum "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" NONE  "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#禁用二进制日志事件校验")]),s._v("\nlog_slave_updates "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" ON  "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#级联复制")]),s._v("\nlog_bin "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" binlog   "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#开启二进制日志记录")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token assign-left variable"}},[s._v("binlog_format")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" ROW  "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#以行的格式记录")]),s._v("\n\ntransaction_write_set_extraction "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" XXHASH64 "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#使用哈希算法将其编码为散列")]),s._v("\nloose-group_replication_group_name "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'ce9be252-2b71-11e6-b8f4-00212844f856'")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#加入的组名")]),s._v("\nloose-group_replication_start_on_boot "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" off "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#不自动启用组复制集群")]),s._v("\nloose-group_replication_local_address "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'host68.cn:33061'")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#以本机端口33061接受来自组中成员的传入连接")]),s._v("\nloose-group_replication_group_seeds "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("' xuhost.cn:33061, xueghostn:33062, xuegodhost33063'")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#组中成员访问表")]),s._v("\nloose-group_replication_bootstrap_group "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" off "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#不启用引导组")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br"),a("span",{staticClass:"line-number"},[s._v("9")]),a("br"),a("span",{staticClass:"line-number"},[s._v("10")]),a("br"),a("span",{staticClass:"line-number"},[s._v("11")]),a("br"),a("span",{staticClass:"line-number"},[s._v("12")]),a("br"),a("span",{staticClass:"line-number"},[s._v("13")]),a("br"),a("span",{staticClass:"line-number"},[s._v("14")]),a("br"),a("span",{staticClass:"line-number"},[s._v("15")]),a("br"),a("span",{staticClass:"line-number"},[s._v("16")]),a("br"),a("span",{staticClass:"line-number"},[s._v("17")]),a("br"),a("span",{staticClass:"line-number"},[s._v("18")]),a("br"),a("span",{staticClass:"line-number"},[s._v("19")]),a("br"),a("span",{staticClass:"line-number"},[s._v("20")]),a("br"),a("span",{staticClass:"line-number"},[s._v("21")]),a("br")])]),a("p",[s._v("重启mysql服务")]),s._v(" "),a("p",[s._v("3.1.2 服务器host68.cn上建立复制账号：")]),s._v(" "),a("div",{staticClass:"language-bash line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-bash"}},[a("code",[s._v("mysql"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("set")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token assign-left variable"}},[s._v("SQL_LOG_BIN")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("   "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#停掉日志记录")]),s._v("\nmysql"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" grant replication slave on *.* to repl@"),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'10.10.10.%'")]),s._v(" identified by "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'123456'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\nmysql"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" flush privileges"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\nmysql"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("set")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token assign-left variable"}},[s._v("SQL_LOG_BIN")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("  "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#开启日志记录")]),s._v("\nmysql"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" change master to "),a("span",{pre:!0,attrs:{class:"token assign-left variable"}},[s._v("master_user")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'repl'")]),s._v(",master_password"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'123456'")]),s._v("  "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("for")]),s._v(" channel "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'group_replication_recovery'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("  "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#构建group replication集群")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br")])]),a("p",[s._v("3.1.3 在mysql服务器host68.cn上安装group replication插件")]),s._v(" "),a("p",[s._v("-- 安装插件")]),s._v(" "),a("p",[s._v("mysql> install PLUGIN group_replication SONAME 'group_replication.so';")]),s._v(" "),a("p",[s._v("-- 查看group replication组件")]),s._v(" "),a("p",[s._v("mysql> show plugins;")]),s._v(" "),a("p",[a("img",{attrs:{src:"http://pic.zzppjj.top/LightPicture/2023/08/e87f565b4e8119a9.png",alt:"e87f565b4e8119a9.png"}})]),s._v(" "),a("p",[s._v("3.1.4 启动服务器host68.cn上mysql的group replication")]),s._v(" "),a("div",{staticClass:"language-bash line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-bash"}},[a("code",[s._v("-- 设置group_replication_bootstrap_group为ON是为了标示以后加入集群的服务器以这台服务器为基准，以后加入的就不需要设置。\nmysql"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("set")]),s._v(" global "),a("span",{pre:!0,attrs:{class:"token assign-left variable"}},[s._v("group_replication_bootstrap_group")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v("ON"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v(" \n-- 作为首个节点启动mgr集群\nmysql"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" start group_replication"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\nmysql"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("set")]),s._v(" global "),a("span",{pre:!0,attrs:{class:"token assign-left variable"}},[s._v("group_replication_bootstrap_group")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v("OFF"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br")])]),a("p",[s._v("3.1.5 查看mgr的状态")]),s._v(" "),a("div",{staticClass:"language-bash line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-bash"}},[a("code",[s._v("-- 查询表performance_schema.replication_group_members\nmysql"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("select")]),s._v(" * from performance_schema.replication_group_members"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br")])]),a("p",[s._v("3.1.6 测试服务器host68.cn上的mysql")]),s._v(" "),a("div",{staticClass:"language-bash line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-bash"}},[a("code",[s._v("mysql"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" create database "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("test")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\nQuery OK, "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),s._v(" row affected "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.01")]),s._v(" sec"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n\nmysql"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" use "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("test")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\nDatabase changed\nmysql"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" create table t1 "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("id int primary key,name varchar"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("20")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("))")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("  "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#注意创建主键")]),s._v("\nQuery OK, "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),s._v(" rows affected "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.01")]),s._v(" sec"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n\nmysql"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" insert into t1 values "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),s._v(","),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'man'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\nQuery OK, "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),s._v(" row affected "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.01")]),s._v(" sec"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n\nmysql"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("select")]),s._v(" * from t1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n+----+------+\n"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("id")]),s._v("  "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" name "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("\n+----+------+\n"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("  "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("man")]),s._v("   "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("\n+----+------+\n"),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),s._v(" row "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("in")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("set")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.00")]),s._v(" sec"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n\nmysql"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" show binlog events"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n+---------------+-----+----------------+-----------+-------------+-------------------------------------------------------------------+\n"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" Log_name      "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" Pos "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" Event_type     "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" Server_id "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" End_log_pos "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" Info                                                              "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("\n+---------------+-----+----------------+-----------+-------------+-------------------------------------------------------------------+\n"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" binlog.000001 "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("   "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("4")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" Format_desc    "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("       "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("181")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("         "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("123")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" Server ver: "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("5.7")]),s._v(".17-log, Binlog ver: "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("4")]),s._v("                             "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" binlog.000001 "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("123")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" Previous_gtids "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("       "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("181")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("         "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("150")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("                                                                   "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" binlog.000001 "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("150")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" Gtid           "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("       "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("181")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("         "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("211")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" SET @@"),a("span",{pre:!0,attrs:{class:"token environment constant"}},[s._v("SESSION")]),s._v(".GTID_NEXT"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'ce9be252-2b71-11e6-b8f4-00212844f856:1'")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" binlog.000001 "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("211")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" Query          "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("       "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("181")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("         "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("270")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" BEGIN                                                             "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" binlog.000001 "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("270")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" View_change    "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("       "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("181")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("         "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("369")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token assign-left variable"}},[s._v("view_id")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("14916679781649312")]),s._v(":1                                       "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" binlog.000001 "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("369")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" Query          "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("       "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("181")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("         "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("434")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" COMMIT                                                            "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" binlog.000001 "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("434")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" Gtid           "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("       "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("181")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("         "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("495")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" SET @@"),a("span",{pre:!0,attrs:{class:"token environment constant"}},[s._v("SESSION")]),s._v(".GTID_NEXT"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'ce9be252-2b71-11e6-b8f4-00212844f856:2'")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" binlog.000001 "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("495")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" Query          "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("       "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("181")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("         "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("585")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" create database "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("test")]),s._v("                                              "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" binlog.000001 "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("585")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" Gtid           "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("       "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("181")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("         "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("646")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" SET @@"),a("span",{pre:!0,attrs:{class:"token environment constant"}},[s._v("SESSION")]),s._v(".GTID_NEXT"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'ce9be252-2b71-11e6-b8f4-00212844f856:3'")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" binlog.000001 "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("646")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" Query          "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("       "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("181")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("         "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("769")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" use "),a("span",{pre:!0,attrs:{class:"token variable"}},[a("span",{pre:!0,attrs:{class:"token variable"}},[s._v("`")]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("test")]),a("span",{pre:!0,attrs:{class:"token variable"}},[s._v("`")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v(" create table t1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("c1 int primary key, c2 text not null"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" binlog.000001 "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("769")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" Gtid           "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("       "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("181")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("         "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("830")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" SET @@"),a("span",{pre:!0,attrs:{class:"token environment constant"}},[s._v("SESSION")]),s._v(".GTID_NEXT"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'ce9be252-2b71-11e6-b8f4-00212844f856:4'")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" binlog.000001 "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("830")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" Query          "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("       "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("181")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("         "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("898")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" BEGIN                                                             "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" binlog.000001 "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("898")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" Table_map      "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("       "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("181")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("         "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("941")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" table_id: "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("219")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("test.t1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("                                           "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" binlog.000001 "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("941")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" Write_rows     "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("       "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("181")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("         "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("983")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" table_id: "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("219")]),s._v(" flags: STMT_END_F                                   "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" binlog.000001 "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("983")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" Xid            "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("       "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("181")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("        "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1010")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" COMMIT /* "),a("span",{pre:!0,attrs:{class:"token assign-left variable"}},[s._v("xid")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("40")]),s._v(" */                                               "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("\n+---------------+-----+----------------+-----------+-------------+-------------------------------------------------------------------+\n"),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("15")]),s._v(" rows "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("in")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("set")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.00")]),s._v(" sec"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br"),a("span",{staticClass:"line-number"},[s._v("9")]),a("br"),a("span",{staticClass:"line-number"},[s._v("10")]),a("br"),a("span",{staticClass:"line-number"},[s._v("11")]),a("br"),a("span",{staticClass:"line-number"},[s._v("12")]),a("br"),a("span",{staticClass:"line-number"},[s._v("13")]),a("br"),a("span",{staticClass:"line-number"},[s._v("14")]),a("br"),a("span",{staticClass:"line-number"},[s._v("15")]),a("br"),a("span",{staticClass:"line-number"},[s._v("16")]),a("br"),a("span",{staticClass:"line-number"},[s._v("17")]),a("br"),a("span",{staticClass:"line-number"},[s._v("18")]),a("br"),a("span",{staticClass:"line-number"},[s._v("19")]),a("br"),a("span",{staticClass:"line-number"},[s._v("20")]),a("br"),a("span",{staticClass:"line-number"},[s._v("21")]),a("br"),a("span",{staticClass:"line-number"},[s._v("22")]),a("br"),a("span",{staticClass:"line-number"},[s._v("23")]),a("br"),a("span",{staticClass:"line-number"},[s._v("24")]),a("br"),a("span",{staticClass:"line-number"},[s._v("25")]),a("br"),a("span",{staticClass:"line-number"},[s._v("26")]),a("br"),a("span",{staticClass:"line-number"},[s._v("27")]),a("br"),a("span",{staticClass:"line-number"},[s._v("28")]),a("br"),a("span",{staticClass:"line-number"},[s._v("29")]),a("br"),a("span",{staticClass:"line-number"},[s._v("30")]),a("br"),a("span",{staticClass:"line-number"},[s._v("31")]),a("br"),a("span",{staticClass:"line-number"},[s._v("32")]),a("br"),a("span",{staticClass:"line-number"},[s._v("33")]),a("br"),a("span",{staticClass:"line-number"},[s._v("34")]),a("br"),a("span",{staticClass:"line-number"},[s._v("35")]),a("br"),a("span",{staticClass:"line-number"},[s._v("36")]),a("br"),a("span",{staticClass:"line-number"},[s._v("37")]),a("br"),a("span",{staticClass:"line-number"},[s._v("38")]),a("br"),a("span",{staticClass:"line-number"},[s._v("39")]),a("br"),a("span",{staticClass:"line-number"},[s._v("40")]),a("br")])]),a("p",[s._v("3.2 复制组添加新实例host69.cn")]),s._v(" "),a("p",[s._v("3.2.1 修改/etc/my.cnf 配置文件，方法和之前相同")]),s._v(" "),a("div",{staticClass:"language-bash line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-bash"}},[a("code",[a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("mysqld"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# Group Replication")]),s._v("\nserver_id "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("101")]),s._v("   "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#注意服务ID不一样")]),s._v("\ngtid_mode "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" ON\nenforce_gtid_consistency "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" ON\nmaster_info_repository "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" TABLE\nrelay_log_info_repository "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" TABLE\nbinlog_checksum "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" NONE\nlog_slave_updates "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" ON\nlog_bin "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" binlog\n"),a("span",{pre:!0,attrs:{class:"token assign-left variable"}},[s._v("binlog_format")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" ROW\n\ntransaction_write_set_extraction "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" XXHASH64\nloose-group_replication_group_name "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'ce9be252-2b71-11e6-b8f4-00212844f856'")]),s._v("\nloose-group_replication_start_on_boot "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" off\nloose-group_replication_local_address "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'host69.cn:33062'")]),s._v("\nloose-group_replication_group_seeds "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'xuhost.cn:33061, xueghostn:33062, xuegodhost33063'")]),s._v("\nloose-group_replication_bootstrap_group "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" off\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#重启mysql服务")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br"),a("span",{staticClass:"line-number"},[s._v("9")]),a("br"),a("span",{staticClass:"line-number"},[s._v("10")]),a("br"),a("span",{staticClass:"line-number"},[s._v("11")]),a("br"),a("span",{staticClass:"line-number"},[s._v("12")]),a("br"),a("span",{staticClass:"line-number"},[s._v("13")]),a("br"),a("span",{staticClass:"line-number"},[s._v("14")]),a("br"),a("span",{staticClass:"line-number"},[s._v("15")]),a("br"),a("span",{staticClass:"line-number"},[s._v("16")]),a("br"),a("span",{staticClass:"line-number"},[s._v("17")]),a("br"),a("span",{staticClass:"line-number"},[s._v("18")]),a("br"),a("span",{staticClass:"line-number"},[s._v("19")]),a("br"),a("span",{staticClass:"line-number"},[s._v("20")]),a("br"),a("span",{staticClass:"line-number"},[s._v("21")]),a("br")])]),a("p",[s._v("3.2.2 用户授权")]),s._v(" "),a("div",{staticClass:"language-bash line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-bash"}},[a("code",[s._v("mysql"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("set")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token assign-left variable"}},[s._v("SQL_LOG_BIN")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("   "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#停掉日志记录")]),s._v("\nmysql"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" grant replication slave on *.* to repl@"),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'10.10.10.%'")]),s._v(" identified by "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'123456'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\nmysql"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" flush privileges"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\nmysql"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("set")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token assign-left variable"}},[s._v("SQL_LOG_BIN")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("  "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#开启日志记录")]),s._v("\nmysql"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" change master to "),a("span",{pre:!0,attrs:{class:"token assign-left variable"}},[s._v("master_user")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'repl'")]),s._v(",master_password"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'123456'")]),s._v("  "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("for")]),s._v(" channel "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'group_replication_recovery'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("  "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#构建group replication集群")]),s._v("\n\n-- 安装group replication插件\nmysql"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("install")]),s._v(" PLUGIN group_replication SONAME "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'group_replication.so'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\nQuery OK, "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),s._v(" rows affected "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.00")]),s._v(" sec"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br"),a("span",{staticClass:"line-number"},[s._v("9")]),a("br")])]),a("p",[s._v("3.2.3 把实例添回到之前的复制组")]),s._v(" "),a("div",{staticClass:"language-bash line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-bash"}},[a("code",[s._v("mysql"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("set")]),s._v(" global "),a("span",{pre:!0,attrs:{class:"token assign-left variable"}},[s._v("group_replication_allow_local_disjoint_gtids_join")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v("ON"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\nQuery OK, "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),s._v(" rows affected "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.00")]),s._v(" sec"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n\nmysql"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" start group_replication"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\nQuery OK, "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),s._v(" rows affected "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("6.65")]),s._v(" sec"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br")])]),a("p",[s._v("3.2.4 在host68.cn上查看复制组状态")]),s._v(" "),a("p",[s._v("mysql> select * from performance_schema.replication_group_members;")]),s._v(" "),a("p",[s._v("3.2.5 在新回的实例上查看数据库发现test库和t1表已经同步")]),s._v(" "),a("div",{staticClass:"language-bash line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-bash"}},[a("code",[s._v("mysql"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" show databases"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n+--------------------+\n"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" Database           "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("\n+--------------------+\n"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" information_schema "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" mysql              "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" performance_schema "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" sys                "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("test")]),s._v("               "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("\n+--------------------+\n"),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("5")]),s._v(" rows "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("in")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("set")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.00")]),s._v(" sec"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n\nmysql"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" use "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("test")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\nReading table information "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("for")]),s._v(" completion of table and "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("column")]),s._v(" names\nYou can turn off this feature to get a quicker startup with "),a("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-A")]),s._v("\n\nDatabase changed\nmysql"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" show tables"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n+----------------+\n"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" Tables_in_test "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("\n+----------------+\n"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" t1             "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("\n+----------------+\n"),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),s._v(" row "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("in")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("set")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.00")]),s._v(" sec"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n\nmysql"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("select")]),s._v(" * from t1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n+----+------+\n"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("id")]),s._v("  "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" name "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("\n+----+------+\n"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("  "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("man")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v("\n+----+------+\n"),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),s._v(" row "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("in")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("set")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.00")]),s._v(" sec"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br"),a("span",{staticClass:"line-number"},[s._v("9")]),a("br"),a("span",{staticClass:"line-number"},[s._v("10")]),a("br"),a("span",{staticClass:"line-number"},[s._v("11")]),a("br"),a("span",{staticClass:"line-number"},[s._v("12")]),a("br"),a("span",{staticClass:"line-number"},[s._v("13")]),a("br"),a("span",{staticClass:"line-number"},[s._v("14")]),a("br"),a("span",{staticClass:"line-number"},[s._v("15")]),a("br"),a("span",{staticClass:"line-number"},[s._v("16")]),a("br"),a("span",{staticClass:"line-number"},[s._v("17")]),a("br"),a("span",{staticClass:"line-number"},[s._v("18")]),a("br"),a("span",{staticClass:"line-number"},[s._v("19")]),a("br"),a("span",{staticClass:"line-number"},[s._v("20")]),a("br"),a("span",{staticClass:"line-number"},[s._v("21")]),a("br"),a("span",{staticClass:"line-number"},[s._v("22")]),a("br"),a("span",{staticClass:"line-number"},[s._v("23")]),a("br"),a("span",{staticClass:"line-number"},[s._v("24")]),a("br"),a("span",{staticClass:"line-number"},[s._v("25")]),a("br"),a("span",{staticClass:"line-number"},[s._v("26")]),a("br"),a("span",{staticClass:"line-number"},[s._v("27")]),a("br"),a("span",{staticClass:"line-number"},[s._v("28")]),a("br"),a("span",{staticClass:"line-number"},[s._v("29")]),a("br"),a("span",{staticClass:"line-number"},[s._v("30")]),a("br"),a("span",{staticClass:"line-number"},[s._v("31")]),a("br"),a("span",{staticClass:"line-number"},[s._v("32")]),a("br")])]),a("p",[s._v("3.3 以同样方法添加host70.cn")]),s._v(" "),a("div",{staticClass:"language-bash line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-bash"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#详细步骤请参考3.2, 这里只给出配置文件/etc/my.cnf：")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("mysqld"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# Group Replication")]),s._v("\nserver_id "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("102")]),s._v("  "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#注意服务id不一样")]),s._v("\ngtid_mode "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" ON\nenforce_gtid_consistency "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" ON\nmaster_info_repository "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" TABLE\nrelay_log_info_repository "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" TABLE\nbinlog_checksum "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" NONE\nlog_slave_updates "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" ON\nlog_bin "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" binlog\n"),a("span",{pre:!0,attrs:{class:"token assign-left variable"}},[s._v("binlog_format")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" ROW\n\ntransaction_write_set_extraction "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" XXHASH64\nloose-group_replication_group_name "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'ce9be252-2b71-11e6-b8f4-00212844f856'")]),s._v("\nloose-group_replication_start_on_boot "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" off\nloose-group_replication_local_address "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'host70.cn:33063'")]),s._v("\nloose-group_replication_group_seeds "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'xuhost.cn:33061, xueghostn:33062, xuegodhost33063'")]),s._v("\nloose-group_replication_bootstrap_group "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" off\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#重启mysql服务 然后参照第二个节点步骤操作加入组复制。")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br"),a("span",{staticClass:"line-number"},[s._v("9")]),a("br"),a("span",{staticClass:"line-number"},[s._v("10")]),a("br"),a("span",{staticClass:"line-number"},[s._v("11")]),a("br"),a("span",{staticClass:"line-number"},[s._v("12")]),a("br"),a("span",{staticClass:"line-number"},[s._v("13")]),a("br"),a("span",{staticClass:"line-number"},[s._v("14")]),a("br"),a("span",{staticClass:"line-number"},[s._v("15")]),a("br"),a("span",{staticClass:"line-number"},[s._v("16")]),a("br"),a("span",{staticClass:"line-number"},[s._v("17")]),a("br"),a("span",{staticClass:"line-number"},[s._v("18")]),a("br"),a("span",{staticClass:"line-number"},[s._v("19")]),a("br"),a("span",{staticClass:"line-number"},[s._v("20")]),a("br"),a("span",{staticClass:"line-number"},[s._v("21")]),a("br"),a("span",{staticClass:"line-number"},[s._v("22")]),a("br")])]),a("p",[s._v("3.4 查看复制组状态")]),s._v(" "),a("p",[s._v("mysql> select * from performance_schema.replication_group_members;")]),s._v(" "),a("p",[s._v("以上单master节点的集群就搭建完毕!")]),s._v(" "),a("p",[s._v("查看集群参数设置列表show variables like 'group_replication%';")]),s._v(" "),a("hr"),s._v(" "),a("h1",{attrs:{id:"multi-primary模式-多主master模式"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#multi-primary模式-多主master模式"}},[s._v("#")]),s._v(" multi-primary模式(多主master模式)：")]),s._v(" "),a("p",[s._v("1、该模式启用需设置两个参数")]),s._v(" "),a("p",[s._v("group_replication_single_primary_mode=0 #这个参数很好理解，就是关闭单master模式")]),s._v(" "),a("p",[s._v("group_replication_enforce_update_everywhere_checks=1 #这个参数设置多主模式下各个节点严格一致性检查")]),s._v(" "),a("p",[s._v("2、 默认启动的都是单master模式，其他节点都设置了read_only、super_read_only这两个参数，需要修改这两个配置")]),s._v(" "),a("p",[s._v("3、 完成上面的配置后就可以执行多点写入了，多点写入会存在冲突检查，这耗损性能挺大的，官方建议采用网络分区功能，在程序端把相同的业务定位到同一节点，尽量减少冲突发生几率。")]),s._v(" "),a("p",[s._v("由单主模式修改为多主模式方法")]),s._v(" "),a("p",[s._v("在原来单主模式的主节点执行操作如下：")]),s._v(" "),a("p",[s._v("stop GROUP_REPLICATION;")]),s._v(" "),a("p",[s._v("set global group_replication_single_primary_mode=off;")]),s._v(" "),a("p",[s._v("set global group_replication_enforce_update_everywhere_checks=ON;")]),s._v(" "),a("p",[s._v("SET GLOBAL group_replication_bootstrap_group=ON;")]),s._v(" "),a("p",[s._v("START GROUP_REPLICATION;")]),s._v(" "),a("p",[s._v("SET GLOBAL group_replication_bootstrap_group=OFF;")]),s._v(" "),a("p",[s._v("而对于其他的节点，执行下面的操作即可。")]),s._v(" "),a("div",{staticClass:"language-bash line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-bash"}},[a("code",[s._v("stop GROUP_REPLICATION"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("set")]),s._v(" global "),a("span",{pre:!0,attrs:{class:"token assign-left variable"}},[s._v("group_replication_allow_local_disjoint_gtids_join")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v("ON"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("即使含有组中不存在的事务，也允许当前server加入组"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("set")]),s._v(" global "),a("span",{pre:!0,attrs:{class:"token assign-left variable"}},[s._v("group_replication_single_primary_mode")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v("off"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("set")]),s._v(" global "),a("span",{pre:!0,attrs:{class:"token assign-left variable"}},[s._v("group_replication_enforce_update_everywhere_checks")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v("ON"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\nstart group_replication"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br")])]),a("p",[s._v("直接搭建多主master模式")]),s._v(" "),a("div",{staticClass:"language-bash line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-bash"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#my.cnf配置文件：")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# Group Replication")]),s._v("\nserver_id "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("100")]),s._v("  "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#服务ID")]),s._v("\ngtid_mode "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" ON  "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#全局事务")]),s._v("\nenforce_gtid_consistency "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" ON  "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#强制GTID的一致性")]),s._v("\nmaster_info_repository "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" TABLE  "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#将master.info元数据保存在系统表中")]),s._v("\nrelay_log_info_repository "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" TABLE  "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#将relay.info元数据保存在系统表中")]),s._v("\nbinlog_checksum "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" NONE  "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#禁用二进制日志事件校验")]),s._v("\nlog_slave_updates "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" ON  "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#级联复制")]),s._v("\nlog_bin "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" binlog   "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#开启二进制日志记录")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token assign-left variable"}},[s._v("binlog_format")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" ROW  "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#以行的格式记录")]),s._v("\n\ntransaction_write_set_extraction "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" XXHASH64 "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#使用哈希算法将其编码为散列")]),s._v("\nloose-group_replication_group_name "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'ce9be252-2b71-11e6-b8f4-00212844f856'")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#加入的组名")]),s._v("\nloose-group_replication_start_on_boot "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" off "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#不自动启用组复制集群")]),s._v("\nloose-group_replication_local_address "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'host68.cn:33061'")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#以本机端口33061接受来自组中成员的传入连接")]),s._v("\nloose-group_replication_group_seeds "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'host.cn:33061,hostn:33062,host33063'")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#组中成员访问表")]),s._v("\nloose-group_replication_bootstrap_group "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" off  "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#不启用引导组")]),s._v("\ngroup_replication_single_primary_mode "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" off  "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#关闭单master模式")]),s._v("\ngroup_replication_enforce_update_everywhere_checks "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" ON  "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#多主一致性检查")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br"),a("span",{staticClass:"line-number"},[s._v("9")]),a("br"),a("span",{staticClass:"line-number"},[s._v("10")]),a("br"),a("span",{staticClass:"line-number"},[s._v("11")]),a("br"),a("span",{staticClass:"line-number"},[s._v("12")]),a("br"),a("span",{staticClass:"line-number"},[s._v("13")]),a("br"),a("span",{staticClass:"line-number"},[s._v("14")]),a("br"),a("span",{staticClass:"line-number"},[s._v("15")]),a("br"),a("span",{staticClass:"line-number"},[s._v("16")]),a("br"),a("span",{staticClass:"line-number"},[s._v("17")]),a("br"),a("span",{staticClass:"line-number"},[s._v("18")]),a("br"),a("span",{staticClass:"line-number"},[s._v("19")]),a("br"),a("span",{staticClass:"line-number"},[s._v("20")]),a("br")])])])}),[],!1,null,null,null);a.default=n.exports}}]);