1. 程式人生 > >mariadb實現主從復制及舊服務器實現主從復制的詳細步驟

mariadb實現主從復制及舊服務器實現主從復制的詳細步驟

註意 ODB 刪除 ria state mct ble 詳細 _for

一、 主從復制(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 [email protected]‘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;

技術分享圖片
?

c) 從節點確認是否復制成功:mysql -e ‘show databases’

技術分享圖片

?
?

二、主從復制示例(舊服務器)

?

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 [email protected]‘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’

技術分享圖片
?

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;

技術分享圖片

?

c) 從節點確認是否復制成功:mysql -e ‘show databases’

技術分享圖片

mariadb實現主從復制及舊服務器實現主從復制的詳細步驟