• 1207、mysql主从同步、复制模式


    一、mysql主从同步

    1、主从同步概述

    1.1 概述

    –实现数据自动同步的服务结构

    **–主服务器:**接受客户端访问连接

    **–从服务器:**自动同步主服务器数据

    1.2 拓扑结构

    **–主服务器:**192.168.4.51

    **–从服务器:**192.168.4.52

    **–客 户 端:**192.168.4.50

    在这里插入图片描述

    1.3 主从同步原理

    **Master:**启用binlog日志

    Slave

    Slave_IO: 复制master主机 binlog日志文件里的SQL命令到本机的 relay log(中继日志文件)文件里。

    Slave_SQL: 执行本机relay-log文件里的SQL语句,实现与Master数据一致。

    在这里插入图片描述

    2、构建主从同步

    构建思路

    配置主服务器:

    ​ 1) 启用binlog日志、

    ​ 2) 授权用户、

    ​ 3) 查看binlog日志信息

    配置从服务器:

    ​ 1) 设置server_id

    2) 确保与主服务器数据一致

    ​ 3) 指定主库信息

    ​ 4) 启动slave程序

    ​ 5) 查看状态信息

    2.1 第一种同步结构 (一主一从同步结构)

    数据库服务器 192.168.4.51 配置为master服务器

    数据库服务器 192.168.4.52 配置为 slave服务器

    (1)第一步 配置master服务器

    具体步骤如下:

    1) 启用binlog日志文件
    vim /etc/my.cnf
    [mysqld]
    server_id=51
    log_bin=master51   #日志默认存储在数据库目录下
    :wq
    ]# systemctl  restart mysqld
    	
        
    2)用户授权
    ]# mysql -uroot  -p密码
    replication slave 让用户有复制命令权限
    
    mysql> grant  replication slave on *.*  to  repluser@"%" identified by  "123456";
    					  
    3)查看日志信息
    #查看到的日志名和偏移量是给 从服务器使用的 
    mysql> show master status;
    +-----------------+----------+--------------+------------------+-------------------+
    | File            | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
    +-----------------+----------+--------------+------------------+-------------------+
    | master51.000001 |      441 |              |                  |                   |
    +-----------------+----------+--------------+------------------+-------------------+
    1 row in set (0.00 sec)				   
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    (2)第二步 配置slave服务器 192.168.4.52

    具体步骤如下:

    1) 指定server_id 并重启mysqld服务
    vim /etc/my.cnf
    [mysqld]
    server_id=52  #自己添加的
    :wq
    							
    systemctl  restart mysqld
    							
    2)确保数据一致(如果一致的此步骤可以省略)
    
    3)指定主服务器信息
     ]#mysql -uroot  -p密码
     
    mysql> show slave status \G  #不是从数据库服务器
    Empty set (0.00 sec)
    
    					   
    mysql> change master to  master_host="192.168.4.51",
    		master_user="repluser" , master_password="123456",
    		master_log_file="master51.000001" , master_log_pos=441 ;
    					   			   
    					   
    4)启动slave进程 
    mysql> start slave;
    					   
    5)查看状态 (IO线程和 SQL线程必须同时是YES 状态)
    mysql> show slave status \G  
    				  Master_Host: 192.168.4.51
                      Master_User: repluser
                      Master_Port: 3306
    				  Master_Log_File: master51.000001
    				  Slave_IO_Running: Yes    #IO线程
                      Slave_SQL_Running: Yes   #SQL线程
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33

    根据 IO线程和 SQL线程的报错信息排错

    mysql> show slave status \G					  
    
    Last_IO_Error: IO线程的报错信息 
    Last_SQL_Error: SQL线程的报错信息
    
    • 1
    • 2
    • 3
    • 4
    (3) 测试主从同步的配置
    1)在主服务器host51 建库建表 插入记录
    
    mysql> create database db1;
    mysql> create  table db1.t1(id int);
    mysql> insert into db1.t1 values(119);
    mysql> insert into db1.t1 values(120);
    mysql> insert into db1.t1 values(114);
    
    2) 在从服务器host52 可以查看到同样的数据
     ]#mysql -uroot -p123456   -e 'select * from db1.t1'
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    (4) 正常的排错方法: 根据 IO线程和 SQL线程的报错信息排错

    mysql> show slave status \G

    Last_IO_Error: IO线程的报错信息

    Last_SQL_Error: SQL线程的报错信息

    ---报错示例1  及解决办法
    Last_IO_Error: Got fatal error 1236 from master
     when reading data from binary log: 'Could not find first log file name in binary log index file'
    
    在从服务器执行如下操作:
    	mysql> stop slave;
    	
    在主服务器查看日志名和偏移量
    	host51  show  master status;
    	
    在从服务器 重新指定日志名和偏移量
    	mysql> change  master to  master_log_file="日志名" , master_log_pos=偏移量;
    	mysql> start slave;
    	mysql> show  slave status \G
    
    
    
    ----错误示例2 及解决办法
    Last_IO_Error: Fatal error: 
    The slave I/O thread stops because 
    master and slave have equal MySQL server UUIDs; 
    these UUIDs must be different for replication to work
    
    #在从服务器做如下操作:
    vim /var/lib/mysql/auto.cnf
    [auto]
    server-uuid=2dac4865-4770-11ec-9103-6462be92a06e   修改一个字母(字母个数不能少)
    :wq
    systemctl   restart  mysqld
    
    
    
    
    ----错误示例3 及解决办法
    Last_IO_Error: error connecting to master 'repluser@192.168.4.51:3306' retry-time: 60  retries: 2
    
     在从服务器做如下操作:
    		MySQl> stop  slave;
    		mysql> change master to  master_user="repluser",master_password="123456";
    		MySQL>  start slave;
    		mysql> show slave status \G
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    所有错误的 统一解决办法:
    把slave角色的服务器恢复为独立的数据库服务器,重新配置为从服务器。
    
    在从服务器执行如下操作:
    
     systemctl stop  mysqld 
    
     cd /var/lib/mysql/
    
     rm -rf master.info
    
     rm -rf  *-relay-bin.*
    
     rm -rf relay-log.info
    
     systemctl  start mysqld
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    2.2 第二种同步结构 (一主多从同步结构)

    **实验要求:**把数据库服务器192.168.4.53也配置为192.168.4.51 的从服务器

    在这里插入图片描述

    在数据库服务器host53 做如下配置:

    具体步骤如下:
    (1)指定server_id 并重启mysqld服务
    [root@host53 ~]# vim /etc/my.cnf
    [mysqld]
    server_id=53  #添加
    :wq
    [root@host53 ~]# systemctl  restart mysqld
    
    • 1
    • 2
    • 3
    • 4
    • 5
    (2)确保数据一致(如果一致的此步骤可以省略)
    第1步:在主服务器host51 对db1库做完全备份 ,然后把备份文件拷贝给host53 主机
    --master-data 做完全备份数据时 ,在备份文件里记录使用的日志名和偏移量							
    [root@host51 ~]# mysqldump -uroot -pNSD2107...a --master-data -B db1 > /root/db1.sql
    [root@host51 ~]# scp /root/db1.sql  192.168.4.53:/opt/
    
    							
    第2步:host53 主机 使用备份文件恢复数据
    [root@host53 ~]# mysql -uroot -p123456  <  /opt/db1.sql                          
    [root@host53 ~]# mysql -uroot -p123456 -e 'show databases'
    [root@host53 ~]# mysql -uroot -p123456 -e 'select count(*) from db1.t1'
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    (3)指定主服务器信息
    #在备份文件里查看日志名和偏移量
    [root@host53 ~]# grep master51 /opt/db1.sql 
    CHANGE MASTER TO MASTER_LOG_FILE='master51.000001', MASTER_LOG_POS=2000;
    
    
    #管理员root 登录指定主服务器信息
    [root@host53 ~]# mysql -uroot -p123456		   
    mysql> change master to master_host="192.168.4.51" , master_user="repluser",
    master_password="123456",master_log_file="master51.000001",
    master_log_pos=2000;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    (4)启动slave进程
    mysql> start slave;
    
    • 1
    (5)查看状态 (IO线程和 SQL线程必须同时是YES 状态)
    mysql> show slave status \G
    						   Slave_IO_Running: Yes
                               Slave_SQL_Running: Yes
    
    • 1
    • 2
    • 3
    (6) 查看数据
    mysql> select  * from  db1.t1;
    
    • 1
    测试一主多从的配置
    #在主服务器插入新数据
    mysql> insert into db1.t1 values(99988);
    
    # 两台从服务器可以看到一样的数据
    [root@host52 mysql]# mysql -uroot -p123456 -e 'select * from db1.t1'
    [root@host53 mysql]# mysql -uroot -p123456 -e 'select * from db1.t1'
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    2.3 第三种同步结构 主从从

    主从从结构 : 给一主一从结构中的从服务器也配置从服务器

    环境准备:

    1.把主机host53 恢复为独立的数据库服务器

    目的:掌握如何把从服务器恢复为独立的数据库服务器

      cd /var/lib/mysql
      rm -rf master.info 
      rm -rf host53-relay-bin.*
      rm -rf relay-log.info 
      systemctl  restart mysqld
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2.准备2台新的数据库服务器 ip地址分别为 192.168.4.54 和 192.168.4.55

    在这里插入图片描述

    具体配置步骤如下:

    (1)第1步:配置主数据库服务器 192.168.4.53
    1) 启用binlog日志
    host53~]# vim /etc/my.cnf
    [mysqld]
    server_id=53
    log_bin=master53
    :wq
    							
    host53~]# systemctl restart  mysqld
    	
        
    2) 用户授权
    host53~]# mysql  -uroot  -p123456
    mysql> grant replication slave on *.*  to repluser@"%" identified by "123456";
    
    
    3) 查看日志信息
    mysql> show master status;
    +-----------------+----------+--------------+------------------+-------------------+
    | File            | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
    +-----------------+----------+--------------+------------------+-------------------+
    | master53.000001 |      441 |              |                  |                   |
    +-----------------+----------+--------------+------------------+-------------------+
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    (2)第2步:配置主机192.168.4.54

    **说明:**因为host54主机同时是2种角色,所以2种角色的配置都要有

    为53的从服务器,55的主服务器

    [root@host54~]# vim /etc/my.cnf
    [mysqld]
    server_id=54
    log_bin=master54
    log_slave_updates #允许级联复制,host54主机把自己主服务器的数据拷贝给自己的从服务器。
    :wq
    [root@host54 ~]# systemctl  restart mysqld
    
    [root@host54 ~]# mysql -uroot -p123456
    mysql> grant  replication slave on *.*  to repluser@"%" identified by "123456";
    mysql> show master status;
    +-----------------+----------+--------------+------------------+-------------------+
    | File            | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
    +-----------------+----------+--------------+------------------+-------------------+
    | master54.000001 |      441 |              |                  |                   |
    +-----------------+----------+--------------+------------------+-------------------+
    1 row in set (0.00 sec)
    
    #指定主服务器信息,日志名偏移量要做host53主机查看后填写  
    [root@host54 ~]# mysql -uroot -p123456        
    mysql> change master to master_host="192.168.4.53",master_user="repluser",master_password="123456",
        -> master_log_file="master53.000001",master_log_pos=441;
    mysql> start slave;
    mysql> show slave status \G
     Master_Host: 192.168.4.53
     Slave_IO_Running: Yes
     Slave_SQL_Running: Yes
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    (3)第3步:配置主机192.168.4.55 (做host54主机的从服务器)

    ​ 1) 指定server_id 并重启mysqld服务

    ​ 2)指定主服务器信息(binlog日志名和偏移量要做host54主机查看后填写)

    ​ 3)启动slave进程

    ​ 4)查看进程状态

    [root@host55 ~]# vim /etc/my.cnf
    [mysqld]
    server_id=55
    :wq
    
    [root@host55 ~]# systemctl restart  mysqld
    
    [root@host55 ~]# mysql  -uroot  -p123456							
    mysql> change master to master_host="192.168.4.54",master_user="repluser",master_password="123456",
        -> master_log_file="master54.000001",master_log_pos=441;
    mysql> start slave;
    mysql> show slave status \G
    			Master_Host: 192.168.4.54
    			Slave_IO_Running: Yes
                Slave_SQL_Running: Yes
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    (4)第4步:验证主从从结构的配置
    #在主服务器Host53主机创建的数据 在主机host54 和 host55 都能看到
    [root@host53 ~]# mysql -uroot -p123456 -e 'create database  gamedb'
    mysql: [Warning] Using a password on the command line interface can be insecure.
    [root@host53 ~]# mysql -uroot -p123456 -e 'create table  gamedb.a(id int)'
    mysql: [Warning] Using a password on the command line interface can be insecure.
    [root@host53 ~]# 
    [root@host53 ~]# mysql -uroot -p123456 -e 'insert into gamedb.a values(888)'
    mysql: [Warning] Using a password on the command line interface can be insecure.
    [root@host53 ~]# mysql -uroot -p123456 -e 'select * from gamedb.a'
    mysql: [Warning] Using a password on the command line interface can be insecure.
    +------+
    | id   |
    +------+
    |  888 |
    +------+
    [root@host53 ~]# 
    
    [root@host54 ~]# mysql -uroot -p123456 -e 'select * from gamedb.a'
    mysql: [Warning] Using a password on the command line interface can be insecure.
    +------+
    | id   |
    +------+
    |  888 |
    +------+
    [root@host55 ~]# 			
    [root@host55 ~]# mysql -uroot -p123456 -e 'select * from gamedb.a'
    mysql: [Warning] Using a password on the command line interface can be insecure.
    +------+
    | id   |
    +------+
    |  888 |
    +------+
    [root@host55 ~]# 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33

    2.4 第四种同步结构 主主结构

    主主结构也叫互为主从。

    # 准备2台新数据库服务器,IP地址192.168.4.68  和  192.168.4.69  
    # 2台数据库服务器分别做彼此的从服务器和主服务器,
    # 2台服务器2种角色的配置都要有
    
    • 1
    • 2
    • 3
    第1步: 配置数据库服务 host68
    vim /etc/my.cnf
    [mysqld]
    server_id=68
    log_bin=master68
    :wq
    systemctl  restart  mysqld			
    
    ]# mysql  -uroot  -p123456	
    
    
    mysql> grant  replication slave on *.*  to  repluser@"%" identified by "123456";
    Query OK, 0 rows affected, 1 warning (0.02 sec)
    
    mysql> show master status;
    +-----------------+----------+--------------+------------------+-------------------+
    | File            | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
    +-----------------+----------+--------------+------------------+-------------------+
    | master68.000001 |      441 |              |                  |                   |
    +-----------------+----------+--------------+------------------+-------------------+
    1 row in set (0.00 sec)
    
    mysql> 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    第2步: 配置数据库服务 host69
    [root@host69 ~]# vim /etc/my.cnf
    [mysqld]
    server_id=69
    log_bin=master69
    :wq
    systemctl  restart  mysqld
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    mysql> grant replication slave on *.*  to repluser@"%"  identified by "123456";
    Query OK, 0 rows affected, 1 warning (0.04 sec)
    
    mysql> show master status;
    +-----------------+----------+--------------+------------------+-------------------+
    | File            | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
    +-----------------+----------+--------------+------------------+-------------------+
    | master69.000001 |      441 |              |                  |                   |
    +-----------------+----------+--------------+------------------+-------------------+
    1 row in set (0.01 sec)
    
    mysql> 
    
    
    #把自己配置为host68的slave服务器,日志名和偏移量要在host68主机查看后填写
    mysql> change master to  master_host="192.168.4.68",master_user="repluser",master_password="123456",
        master_log_file="master68.000001",master_log_pos=441;
    mysql> start slave;
    mysql> show slave status \G
    			Master_Host: 192.168.4.68
    			Slave_IO_Running: Yes
                Slave_SQL_Running: Yes
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    第3步:把host68 主机指定为host69 主机的slave 服务器
    [root@host68 ~]# mysql -uroot -p123456
    
    mysql> change master to  master_host="192.168.4.69" , 
    						master_user="repluser" , 
    						master_password="123456",
    						master_log_file="master69.000001",
    						master_log_pos=441;
    
    mysql> start slave;
    mysql> show slave status \G
    			Master_Host: 192.168.4.69
    			Slave_IO_Running: Yes
                Slave_SQL_Running: Yes
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    第4步:测试主主结构的配置
    1.先在host68主机健库表插入记录 , 在host69 主机可以看到同样的数据
    [root@host68 ~]# mysql -uroot -p123456 -e 'create database db1'
    [root@host68 ~]# mysql -uroot -p123456 -e 'create table db1.a(id int)'
    [root@host68 ~]# mysql -uroot -p123456 -e 'insert into db1.a values(666)'
    [root@host69 ~]# mysql -uroot -p123456 -e 'select * from db1.a' 
    mysql: [Warning] Using a password on the command line interface can be insecure.
    +------+
    | id   |
    +------+
    |  666 |
    +------+
    [root@host69 ~]# 
    					
    2.然后再在host69 库下的表插入新记录,在host68主机可以看到同样的数据
    [root@host69 ~]# mysql -uroot -p123456 -e 'insert into db1.a values(777)' 
    [root@host68 ~]# mysql -uroot -p123456 -e 'select * from db1.a'
    mysql: [Warning] Using a password on the command line interface can be insecure.
    +------+
    | id   |
    +------+
    |  666 |
    |  777 |
    +------+
    [root@host68 ~]# 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    二、复制模式

    mysql 主从同步复制数据工作模式

    主从同步复制模式, 可以在任意数据库服务器启用半同步服务模式

    支持的工作方式:

    第1种 异步复制模式(默认)

    ​ 主服务器执行完一次事务后,立即将结果返给客户端,

    ​ 不关心从服务器是否已经同步数据。

    第2种 半同步复制模式

    ​ 介于异步复制和同步复制之间;

    ​ 主服务器在执行完一次事务后,等待至少一台从服务器同步数据完成,

    ​ 才将结果返回给客户端。

    方法1 命令行设置

    好处:不用重启服务马上生效(重启数据库还原)

    安装模块 :

    #安装master模块
    MySQL> INSTALL  PLUGIN  rpl_semi_sync_master   SONAME  "semisync_master.so";
      								
    #安装slave模块
    MySQL> INSTALL  PLUGIN  rpl_semi_sync_slave   SONAME  "semisync_slave.so";	
    
    • 1
    • 2
    • 3
    • 4
    • 5

    查看模块是否安装:

    mysql> SELECT  plugin_name, plugin_status FROM  information_schema.plugins  
    WHERE plugin_name LIKE "%semi%"; 
    +----------------------+---------------+
    | plugin_name          | plugin_status |
    +----------------------+---------------+
    | rpl_semi_sync_master | ACTIVE        |
    | rpl_semi_sync_slave  | ACTIVE        |
    +----------------------+---------------+
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    启用模块:

    #启用master模块
    mysql> SET  GLOBAL rpl_semi_sync_master_enabled=1;
     								
    #启用slave模块
    mysql> SET  GLOBAL rpl_semi_sync_slave_enabled=1;	
    
    • 1
    • 2
    • 3
    • 4
    • 5

    查看模块是否启用:

    MySQL> SHOW  VARIABLES  LIKE  "rpl_semi_sync_%_enabled"; 								
    +------------------------------+-------+
    | Variable_name                | Value |
    +------------------------------+-------+
    | rpl_semi_sync_master_enabled | ON    |
    | rpl_semi_sync_slave_enabled  | ON    |
    +------------------------------+-------+
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    方法2–永久配置 编辑主配置文件
    vim  /etc/my.cnf
    [mysqld]
    	#安装模块			plugin-load="rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so"
    												
    #启用模块
    rpl_semi_sync_slave_enabled=1
    rpl_semi_sync_master_enabled=1
    :wq
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    重启服务 模块依然是启用状态

    ]# systemctl   restart mysqld
    						
    MySQL> SHOW  VARIABLES  LIKE  "rpl_semi_sync_%_enabled"; 						+------------------------------+-------+
    | Variable_name                | Value |
    +------------------------------+-------+
    | rpl_semi_sync_master_enabled | ON    |
    | rpl_semi_sync_slave_enabled  | ON    |
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    _slave_enabled | ON |
    ±-----------------------------±------+

    
    #### 方法2--永久配置 编辑主配置文件
    
    ```shell
    vim  /etc/my.cnf
    [mysqld]
    	#安装模块			plugin-load="rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so"
    												
    #启用模块
    rpl_semi_sync_slave_enabled=1
    rpl_semi_sync_master_enabled=1
    :wq
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    重启服务 模块依然是启用状态

    ]# systemctl   restart mysqld
    						
    MySQL> SHOW  VARIABLES  LIKE  "rpl_semi_sync_%_enabled"; 						+------------------------------+-------+
    | Variable_name                | Value |
    +------------------------------+-------+
    | rpl_semi_sync_master_enabled | ON    |
    | rpl_semi_sync_slave_enabled  | ON    |
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
  • 相关阅读:
    14、顺时针打印矩阵
    【飞控开发基础教程6】疯壳·开源编队无人机-SPI(六轴传感器数据获取)
    Java项目基于SpringBoot藏区特产销售系统,可作为毕业设计
    【sgTileImage】自定义组件:瓦片图拖拽局部加载、实现以鼠标为中心缩放
    部署MES系统的实际作用和意义是什么?这篇文章总结得很全面
    骨灰级大 BOOS 总结出内部不传之密:多线程高并发笔记 + 视频版
    深度学习(part7)--Keras常用模块
    C++ 基础知识笔记(一)变量和数据的输入输出
    Thymeleaf学习(3)—— 内置对象
    阿里强势推出Spring源码进阶宝典:思维脑图+视频教程+笔记文档
  • 原文地址:https://blog.csdn.net/weixin_56619848/article/details/126836822