centos7 mysql dual master sincronizacion

Configuración MySql

    1. Modifique el archivo de configuración de MySql en el servicio 3
    [root@node2 mysql]# vim /etc/my.cnf
    [mysqld]
    basedir=/home/console/mysql
    datadir=/home/console/mysql/data
    port=3306   #端口
    server-id=1 #服务id
    
    #mysql双主配置
    #binlog-do-db=test  #需要记录到二进制日志的数据库
    binlog-ignore_db=mysql  #忽略记录二进制日志的数据库
    #replicate-do-db=test   #指定复制的数据库
    replicate_ignore_db=mysql   #不复制的数据库
    binlog-ignore-db=information_schema #不复制的数据库
    binlog-ignore-db=performance_schema #不复制的数据库
    log-slave-updates=1 #该从库是否写入二进制日志,如果需要成为多主则可启用。只读可以不需要
    auto_increment_offset=2 #该服务器自增列的初始值
    auto_increment_increment=2  #该服务器自增列增量
    relay_log=mysql-relay-bin   #从库的中继日志,主库日志写到中继日志,中继日志再重做到从库
    
    log-bin=mysql-bin
    max_connections=151
    max_connect_errors=30
    default-storage-engine=InnoDB
    transaction_isolation=REPEATABLE-READ
    socket=/home/console/mysql/tmp/mysql.sock
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
    interactive_timeout=28800
    wait_timeout=28800
    [client]
    socket=/home/console/mysql/tmp/mysql.sock
    [mysqld]
    init_connect='SET collation_connection = utf8_unicode_ci'
    init_connect='SET NAMES utf8'
    character-set-server=utf8
    collation-server=utf8_unicode_ci
    skip-name-resolve
    skip-character-set-client-handshake
    [client]
    default-character-set=utf8
    [mysqld_safe]
    log-error=/var/log/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid
    
    1. Modificar la configuración de MySql en el servicio 4
    [root@node3 mysql]# vim /etc/my.cnf
    [mysqld]
    basedir=/home/console/mysql
    datadir=/home/console/mysql/data
    port=3306   #端口
    server-id=2 #服务id
    
    #mysql双主配置
    #binlog-do-db=test  #需要记录到二进制日志的数据库
    binlog-ignore_db=mysql  #忽略记录二进制日志的数据库
    #replicate-do-db=test   #指定复制的数据库
    replicate_ignore_db=mysql   #不复制的数据库
    binlog-ignore-db=information_schema #不复制的数据库
    binlog-ignore-db=performance_schema #不复制的数据库
    log-slave-updates=1 #该从库是否写入二进制日志,如果需要成为多主则可启用。只读可以不需要
    auto_increment_offset=1 #该服务器自增列的初始值
    auto_increment_increment=2  #该服务器自增列增量
    relay_log=mysql-relay-bin   #从库的中继日志,主库日志写到中继日志,中继日志再重做到从库
    
    log-bin=mysql-bin
    max_connections=151
    max_connect_errors=30
    default-storage-engine=InnoDB
    transaction_isolation=REPEATABLE-READ
    socket=/home/console/mysql/tmp/mysql.sock
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
    interactive_timeout=28800
    wait_timeout=28800
    [client]
    socket=/home/console/mysql/tmp/mysql.sock
    [mysqld]
    init_connect='SET collation_connection = utf8_unicode_ci'
    init_connect='SET NAMES utf8'
    character-set-server=utf8
    collation-server=utf8_unicode_ci
    skip-name-resolve
    skip-character-set-client-handshake
    [client]
    default-character-set=utf8
    [mysqld_safe]
    log-error=/var/log/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid
    
    需注意,3与4MySql服务的server-id不能相同。
    如果为多主的话注意设置 auto-increment-offset 和 auto-increment-increment
    如上面为双主的设置:
    服务器 4 自增列显示为:1,3,5,7,……(offset=1,increment=2)
    服务器 3 自增列显示为:2,4,6,8,……(offset=2,increment=2
    1. Reinicie MySql en los dos servidores 3 y 4
    [root@node3 mysql]# service mysqld restart
    

Construir el maestro dual MySql

    1. Conéctese a la base de datos para ver información sobre la ubicación de registro
    [root@node3 mysql]# cd bin/
    [root@node3 bin]# ./mysql -uroot -p
    Enter password: 
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 10
    Server version: 5.7.21-log MySQL Community Server (GPL)
    
    Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    mysql> flush logs;
    mysql> show master status;
    +------------------+----------+--------------+---------------------------------------------+-------------------+
    | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB                            | Executed_Gtid_Set |
    +------------------+----------+--------------+---------------------------------------------+-------------------+
    | mysql-bin.000005 |     154 |              | mysql,information_schema,performance_schema |                   |
    +------------------+----------+--------------+---------------------------------------------+-------------------+
    1 row in set (0.00 sec)
    
    File :当前正在记录的二进制日志文件
    Position :记录偏移量,日志 mysql-bin.000008 所记录到的位置。
    Binlog_Do_DB :要记录日志的数据库
    Binlog_Ignore_DB :不记录日志的数据库
    Executed_Gtid_Set :已执行的事务ID
    
    1. Ver el estado del registro binario
    mysql> show variables like '%log_bin%';
    +---------------------------------+------------------------------------------+
    | Variable_name                   | Value                                    |
    +---------------------------------+------------------------------------------+
    | log_bin                         | ON                                       |
    | log_bin_basename                | /home/console/mysql/data/mysql-bin       |
    | log_bin_index                   | /home/console/mysql/data/mysql-bin.index |
    | log_bin_trust_function_creators | OFF                                      |
    | log_bin_use_v1_row_events       | OFF                                      |
    | sql_log_bin                     | ON                                       |
    +---------------------------------+------------------------------------------+
    6 rows in set (0.00 sec)
    
    1. Conéctese a 3 bases de datos y cree una cuenta de sincronización esclava 4
    mysql>  grant replication slave on *.* to 'repl_user'@'172.16.33.4' identified by 'slave@4';
    
    1. Obtenga información relacionada con la ubicación del registro de registro de 3 datos
    mysql> show master status;
    +------------------+----------+--------------+---------------------------------------------+-------------------+
    | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB                            | Executed_Gtid_Set |
    +------------------+----------+--------------+---------------------------------------------+-------------------+
    | mysql-bin.000005 |     154 |              | mysql,information_schema,performance_schema |                   |
    +------------------+----------+--------------+---------------------------------------------+-------------------+
    1 row in set (0.00 sec)
    
    1. Conéctese a la base de datos 4 y use la cuenta de sincronización recién creada en la base de datos 3 para conectarse a la biblioteca principal maestra (3)
    mysql> 
     CHANGE MASTER TO 
           MASTER_HOST='172.16.33.3', 
           MASTER_USER='repl_user', 
           MASTER_PASSWORD='slave@4',
    	   MASTER_PORT=3406,
           MASTER_LOG_FILE='mysql-bin.000005', 
           MASTER_LOG_POS=154;
           
    说明:
        MASTER_HOST 主节点ip
        MASTER_USER 用户名
        MASTER_PASSWORD 密码
        MASTER_LOG_FILE 3服务正在记录的二进制日志文件(实时获取)
        MASTER_LOG_POS  3服务记录二进制日志的偏移量(实时获取)
    
    1. Conéctese a 4 bases de datos, cree una cuenta de sincronización esclava (3)
    mysql> grant replication slave on *.* to 'repl_user'@'172.16.33.3' identified by 'slave@3';
    
    1. Obtenga 4 información relacionada con la ubicación del registro de registro de datos
    mysql> show master status;
    +------------------+----------+--------------+---------------------------------------------+-------------------+
    | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB                            | Executed_Gtid_Set |
    +------------------+----------+--------------+---------------------------------------------+-------------------+
    | mysql-bin.000004 |     154 |              | mysql,information_schema,performance_schema |                   |
    +------------------+----------+--------------+---------------------------------------------+-------------------+
    1 row in set (0.00 sec)
    
    1. Conéctese a la base de datos 3 y use la cuenta de sincronización recién creada en la base de datos 4 para conectarse a la biblioteca principal maestra (4)
    mysql> 
     CHANGE MASTER TO 
           MASTER_HOST='172.16.33.4', 
           MASTER_USER='repl_user', 
           MASTER_PASSWORD='slave@3', 
    	   MASTER_PORT=3406,
           MASTER_LOG_FILE='mysql-bin.000004', 
           MASTER_LOG_POS=154;
           
    说明:
        MASTER_HOST 主节点ip
        MASTER_USER 用户名
        MASTER_PASSWORD 密码
        MASTER_LOG_FILE 4服务正在记录的二进制日志文件(实时获取)
        MASTER_LOG_POS  4服务记录二进制日志的偏移量(实时获取)
    
    1. Reiniciar 3, 144 base de datos MySql
        [root@node3 mysql]# service mysqld restart
    

Abrir puertos de cortafuegos

    #查看端口是否占用
    netstat  -anp  |grep 3406
    # 查看防火墙状态
    systemctl status firewalld 
    firewall-cmd --state
    # 开启3406端口
    firewall-cmd --zone=public --add-port=3306/tcp --permanent
    # 重启防火墙
    firewall-cmd --reload
    # 查看端口
    firewall-cmd --list-ports
    
    firewall-cmd --zone=public --add-port=5119/tcp --permanent
     5119/tcp

Supongo que te gusta

Origin blog.csdn.net/sinat_37792529/article/details/124382644
Recomendado
Clasificación