MySQL 是一個常用的關系型數據庫管理系統,支持主從同步。在實際應用中,通常會采用中間庫的方式來進行主從同步。本文將介紹在 MySQL 中如何使用中間庫來實現主從同步。
首先,定義兩個數據庫實例,一個為主庫,一個為從庫。
CREATE DATABASE `db_master`;
CREATE DATABASE `db_slave`;
在主庫中,需要配置 binlog,開啟 binlog 后,主庫會將所有修改數據的操作記錄在 binlog 中。
# 配置文件 my.cnf
[mysqld]
# 開啟 binlog
log-bin=mysql-bin
在從庫中,需要設置主庫的地址和賬號,以及使用哪個 binlog 文件進行同步。
CHANGE MASTER TO
MASTER_HOST='主庫 IP 地址',
MASTER_USER='主庫賬號',
MASTER_PASSWORD='主庫密碼',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=4;
然而,如果直接使用從庫同步主庫的 binlog 文件,可能會受到部分操作的影響。因此,我們可以在主從庫之間創建一個中間庫,由中間庫來進行主從之間的同步。
中間庫的作用是接收主庫 binlog 文件的內容,再通過 slave 線程將內容同步到從庫。創建中間庫的 SQL 語句如下:
CREATE DATABASE `db_middle`;
修改主庫配置文件,將 binlog 內容同步到中間庫中:
# 配置文件 my.cnf
[mysqld]
# 開啟 binlog
log-bin=mysql-bin
# 設置中間庫
binlog-do-db=db_middle
修改從庫配置文件,同步中間庫的內容:
CHANGE MASTER TO
MASTER_HOST='主庫 IP 地址',
MASTER_USER='主庫賬號',
MASTER_PASSWORD='主庫密碼',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=4;
通過以上的操作,我們完成了 MySQL 中間庫的配置。中間庫由主庫同步 binlog 數據到中間庫,再將中間庫的內容同步到從庫,實現了主從同步。