搭建mariadb主從復制環境需要完成以下幾個步驟。前提是你已經在兩臺服務器上部署好MariaDB,并且它們之間可以互相通信。
1. 設置主數據庫服務器
-
修改主服務器的配置文件(通常為 /etc/my.cnf 或者 /etc/mysql/my.cnf):
[mysqld] server-id = 1 log_bin = /var/log/mysql/mysql-bin.log binlog_do_db = mydb # 使用你要同步的數據庫名替換該字段
-
重啟MariaDB服務以應用更改:
sudo systemctl restart mariadb
-
進入MariaDB并創建用于復制的賬號:
CREATE USER 'replicator'@'%' IDENTIFIED BY 'password'; # 密碼請按需修改 GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%'; FLUSH PRIVILEGES;
-
鎖定表并查看當前二進制日志狀態:
FLUSH TABLES WITH READ LOCK; SHOW MASTER STATUS;
記錄 File 和 position 的信息,后續操作會用到。
-
釋放表鎖:
UNLOCK TABLES;
2. 設置從數據庫服務器
-
編輯從服務器的配置文件(一般位于 /etc/my.cnf 或 /etc/mysql/my.cnf):
[mysqld] server-id = 2 relay_log = /var/log/mysql/mysql-relay-bin.log log_bin = /var/log/mysql/mysql-bin.log binlog_do_db = mydb # 數據庫名稱請根據實際情況調整 read_only = 1
-
重啟MariaDB服務使新配置生效:
sudo systemctl restart mariadb
-
登錄MariaDB并設置主服務器連接信息:
CHANGE MASTER TO MASTER_HOST='master_ip', # 替換為主服務器IP地址 MASTER_USER='replicator', MASTER_PASSWORD='password', # 與之前設置的密碼一致 MASTER_LOG_FILE='mysql-bin.000001', # 替換為你記錄的File值 MASTER_LOG_POS=123; # 替換為你記錄的Position值
-
啟動從服務器復制功能:
START SLAVE;
-
查詢從服務器運行狀態:
SHOW SLAVE STATUSG
確保 Slave_IO_Running 和 Slave_SQL_Running 都顯示 Yes,否則請排查錯誤原因。
3. 測試數據同步
在主服務器執行插入操作,并在從服務器檢查是否已同步:
-- 在主服務器上 USE mydb; INSERT INTO mytable (column1, column2) VALUES ('value1', 'value2'); <p>-- 在從服務器上 USE mydb; SELECT * FROM mytable;
如果從服務器能查到新增的數據,則表示復制配置成功。
常見注意事項
- 主從服務器時間要保持一致。
- 確認防火墻規則允許訪問MySQL默認端口 3306。
- 如果使用云主機,請確保安全組或網絡策略放行相關流量。
通過上述步驟,你應該已經完成了MariaDB主從復制的配置工作。
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END