微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

mariadb实现主从复制及旧服务器实现主从复制的详细步骤

一、 主从复制(2台新主机)

 

1. 实验环境:

 

    两台mariadb(5.5.60)一主一从:
    主:192.168.36.121
    从:192.168.36.120

 

2. 主节点

 

A. 修改配置:vim /etc/my.cnf

        [MysqLd]
        server_id=121
        innodb_file_per_table                                                                                                           
        binlog_format=row 建议
        log_bin=/data/bin/MysqL-bin

 

B. 查看位置信息:MysqL> show master logs;

        MysqL-bin.000004    245

 

C. 创建复制用户MysqL> grant replication slave on . to repluser@'192.168.36.%' identified by '123456';

 

3. 从节点

 

A. 修改配置:vim /etc/my.cnf

        [MysqLd]
        server_id=120                                                                                                           
        read_only 建议
        innodb_file_per_table

 

B. 配置同步信息

        MysqL>CHANGE MASTER TO   
            MASTER_HOST='192.168.36.121',  
            MASTER_USER='repluser',   
            MASTER_PASSWORD='123456',   
            MASTER_PORT=3306,   
            MASTER_LOG_FILE='MysqL-bin.000004',   
            MASTER_LOG_POS=245;

 

C. 启动复制thread

        MysqL>start slave;
        MysqL>show slave status\G
        MariaDB [(none)]> show slave status\G
        *************************** 1. row ***************************
           Slave_IO_State: Waiting for master to send event
              Master_Host: 192.168.36.121
              Master_User: repluser
              Master_Port: 3306
            Connect_Retry: 60
          Master_Log_File: mariadb-bin.000009
      Read_Master_Log_Pos: 245
           Relay_Log_File: mariadb-relay-bin.000004
            Relay_Log_Pos: 531
    Relay_Master_Log_File: mariadb-bin.000009
         Slave_IO_Running: Yes
        Slave_sql_Running: Yes
          Replicate_Do_DB: 
      Replicate_Ignore_DB: 
       Replicate_Do_Table: 
   Replicate_Ignore_Table: 
  Replicate_Wild_Do_Table: 
    Replicate_Wild_Ignore_Table: 
               Last_Errno: 0
               Last_Error: 
             Skip_Counter: 0
      Exec_Master_Log_Pos: 245
          Relay_Log_Space: 872
          Until_Condition: None
           Until_Log_File: 
            Until_Log_Pos: 0
       Master_SSL_Allowed: No
       Master_SSL_CA_File: 
       Master_SSL_CA_Path: 
          Master_SSL_Cert: 
        Master_SSL_Cipher: 
           Master_SSL_Key: 
    Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
            Last_IO_Errno: 0
            Last_IO_Error: 
           Last_sql_Errno: 0
           Last_sql_Error: 
    Replicate_Ignore_Server_Ids: 
         Master_Server_Id: 121
1 row in set (0.00 sec)

 

D. 测试

 

a) 主节点新建一个数据库db1:create database db1;

 

b) 查看新建的库是否成功:show databases;

mariadb实现主从复制及旧服务器实现主从复制的详细步骤

 

c) 从节点确认是否复制成功:MysqL -e ‘show databases’

mariadb实现主从复制及旧服务器实现主从复制的详细步骤

 
 

二、主从复制示例(旧服务器)

 

1. 实验:基于一台旧服务的基础上,实现主从复制

    在上一实验的基础上实现。

 

2. 主节点

 

A. 确认主节点是否二进制日志、server_id是否配置正确

 

a) 主节点二进制日志和server_id配置正常,如下:

    cat /etc/my.cnf
        [MysqLd]
        server_id=121                                                                                                           
        binlog_format=row 
        log_bin=/data/bin/MysqL-bin

 

b) 主节点未配置过,需要添加相应的内容

    vim /etc/my.cnf
        [MysqLd]
        server_id=121                                                                                                           
        binlog_format=row 建议添加
        log_bin=/data/bin/MysqL-bin(注意目录权限,可以用认)
    systemctl restart mariadb

 

B. 创建复制用户MysqL> grant replication slave on . to repluser@'192.168.36.%' identified by '123456';

 

C. 完全备份:MysqLdump -A --single-transaction -F --master-data=1 > /data/backup/all.sql

 

D. 查看并记录位置信息:MysqL -e ‘show master logs’

mariadb实现主从复制及旧服务器实现主从复制的详细步骤

 

E. 复制备份文件到从机:scp /data/backup/all.sql 192.168.36.120:/data/backup/

 

3. 从节点

 

A. 确认从节点是否二进制日志、server_id是否配置正确

 

a) 从节点二进制日志和server_id配置正常,如下:

    cat /etc/my.cnf
        [MysqLd]
        server_id=120(只要是唯一即可)                                                                                                           
        read_only 

 

b) 从节点未配置过,需要添加相应的内容

    vim /etc/my.cnf
        [MysqLd]
        server_id=120                                                                                                           
        read_only 建议添加

 

B. 删除原有数据库中所有的内容

    systemctl stop mariadb
    \rm -rf /var/lib/MysqL/*
    systemctl start mariadb

 

C. 修改备份数据库内容

    vim /data/backup/all.sql
        CHANGE MASTER TO   
        MASTER_HOST='192.168.36.121',
        MASTER_USER='repluser',
        MASTER_PASSWORD='123456',
        MASTER_PORT=3306,
        MASTER_LOG_FILE='MysqL-bin.000010', 
        MASTER_LOG_POS=245;   

 

D. 导入完全备份的数据库文件MysqL < /data/backup/all.sql

 

E. 启动复制thread

    MysqL>start slave;
    MysqL>show slave status\G

 

F. 测试

 

a) 主节点新建一个数据库db1:create database db1;

 

b) 查看新建的库是否成功:show databases;

mariadb实现主从复制及旧服务器实现主从复制的详细步骤

 

c) 从节点确认是否复制成功:MysqL -e ‘show databases’

mariadb实现主从复制及旧服务器实现主从复制的详细步骤

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐