首頁 > 運維 > linux運維 > 如何在Linux上設定資料庫主從複製

如何在Linux上設定資料庫主從複製

PHPz
發布: 2023-07-07 09:45:06
原創
1736 人瀏覽過

如何在Linux上設定資料庫主從複製

在Linux系統下,設定資料庫主從複製是一項常見的任務。主從複製可以提供資料冗餘備份、負載平衡和高可用性等優勢。本文將介紹如何在Linux上設定資料庫主從複製的步驟,並提供對應的程式碼範例。

步驟一:安裝資料庫軟體
首先,我們需要在主伺服器和從伺服器上安裝對應的資料庫軟體。本文以MySQL資料庫為例,安裝過程如下:

  1. 在主伺服器與從伺服器執行下列指令來安裝MySQL資料庫:

    sudo apt update
    sudo apt install mysql-server
    登入後複製

步驟二:設定主伺服器
接下來,我們需要在主伺服器上進行一系列設定:

  1. #編輯MySQL設定檔/etc/mysql/mysql. conf.d/mysqld.cnf,取消以下行的註解(刪除行前的##):

    #bind-address            = 127.0.0.1
    #log_bin                  = /var/log/mysql/mysql-bin.log
    #binlog_do_db            = mydatabase
    登入後複製
  2. 重啟MySQL伺服器:

    sudo service mysql restart
    登入後複製
    登入後複製
  3. 登入MySQL伺服器並執行下列SQL指令:

    mysql -u root -p
    登入後複製
    登入後複製

    在MySQL互動介面中執行:

    CREATE USER 'replication'@'%' IDENTIFIED BY 'password';
    GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%';
    FLUSH PRIVILEGES;
    FLUSH TABLES WITH READ LOCK;
    SHOW MASTER STATUS;
    登入後複製

    記下FilePosition欄位的值,我們將在從伺服器上用到。

  4. 解鎖表格:

    UNLOCK TABLES;
    登入後複製

步驟三:設定從伺服器
接下來,在從伺服器上進行一系列設定:

  1. 編輯MySQL設定檔/etc/mysql/mysql.conf.d/mysqld.cnf,取消下列行的註解:

    #bind-address            = 127.0.0.1
    登入後複製
  2. #重啟MySQL伺服器:

    sudo service mysql restart
    登入後複製
    登入後複製
  3. 登入MySQL伺服器並執行下列SQL指令:(將<master-ip>取代為主伺服器的IP位址,<master-file><master-position>替換為上一個步驟中記錄的FilePosition欄位的值。)

    mysql -u root -p
    登入後複製
    登入後複製

    在MySQL互動介面中執行:

    CHANGE MASTER TO MASTER_HOST='<master-ip>', MASTER_USER='replication', MASTER_PASSWORD='password', MASTER_LOG_FILE='<master-file>', MASTER_LOG_POS=<master-position>;
    START SLAVE;
    登入後複製
  4. 檢查從伺服器的狀態:

    SHOW SLAVE STATUSG
    登入後複製

    確保# Slave_IO_RunningSlave_SQL_Running欄位的值都為Yes,表示主從複製已經成功配置。

至此,我們已經完成了在Linux上配置資料庫主從複製的過程。

總結
本文介紹了在Linux系統下配置資料庫主從複製的步驟,並提供了對應的程式碼範例。透過主從複製,我們可以獲得資料冗餘備份、負載平衡和高可用性等好處。配置主從複製時需要注意主伺服器和從伺服器的軟體安裝和配置,以及正確設定主從伺服器的連接和權限。希望本文對你在Linux系統上配置資料庫主從複製有所幫助。

以上是如何在Linux上設定資料庫主從複製的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板