溫馨提示×

Ubuntu中MariaDB的復制功能如何設置

小樊
41
2025-08-19 19:34:25
欄目: 云計算

以下是在Ubuntu中設置MariaDB復制功能的基本步驟(以一主一從為例):

一、主服務器配置

  1. 修改配置文件
    編輯 /etc/mysql/mariadb.conf.d/50-server.cnf,添加:

    [mysqld]  
    server-id = 1       # 主服務器唯一ID  
    log_bin = /var/log/mysql/mysql-bin.log  # 啟用二進制日志  
    binlog_do_db = your_database  # 指定同步的數據庫(可選)  
    

    重啟服務:sudo systemctl restart mariadb。

  2. 創建復制用戶
    登錄MariaDB,執行:

    CREATE USER 'replicator'@'%' IDENTIFIED BY '密碼';  
    GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%';  
    FLUSH PRIVILEGES;  
    
  3. 獲取二進制日志位置
    執行:

    FLUSH TABLES WITH READ LOCK;  
    SHOW MASTER STATUS;  
    

    記錄 File(如 mysql-bin.000001)和 Position(如 123),后續用于從服務器配置。
    完成后解鎖表:UNLOCK TABLES;。

二、從服務器配置

  1. 修改配置文件
    編輯 /etc/mysql/mariadb.conf.d/50-server.cnf,添加:

    [mysqld]  
    server-id = 2       # 從服務器唯一ID(需與主服務器不同)  
    relay_log = /var/log/mysql/mysql-relay-bin.log  
    log_bin = /var/log/mysql/mysql-bin.log  
    read_only = 1       # 設置為只讀(可選,增強安全性)  
    

    重啟服務:sudo systemctl restart mariadb。

  2. 配置主從同步
    登錄MariaDB,執行:

    CHANGE MASTER TO  
    MASTER_HOST='主服務器IP',  
    MASTER_USER='replicator',  
    MASTER_PASSWORD='密碼',  
    MASTER_LOG_FILE='mysql-bin.000001',  # 替換為主服務器記錄的File值  
    MASTER_LOG_POS=123;                 # 替換為主服務器記錄的Position值  
    START SLAVE;  
    
  3. 檢查復制狀態
    執行:

    SHOW SLAVE STATUS\G  
    

    確保 Slave_IO_RunningSlave_SQL_Running 均為 Yes,否則需排查錯誤。

三、驗證復制

在主服務器插入數據,檢查從服務器是否同步:

-- 主服務器  
USE your_database;  
INSERT INTO your_table (column) VALUES ('測試數據');  

-- 從服務器  
USE your_database;  
SELECT * FROM your_table;  

若數據一致,則配置成功。

注意事項

  • 確保主從服務器時間同步(可使用 ntp 服務)。
  • 防火墻需開放3306端口(主從通信端口)。
  • 生產環境中建議使用復雜密碼,并定期備份數據。

參考來源:

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女