在CMake中配置MySQL主從復(fù)制,需要首先確保已經(jīng)安裝了MySQL數(shù)據(jù)庫
安裝MySQL數(shù)據(jù)庫: 請參考MySQL官方文檔進(jìn)行安裝:https://dev.mysql.com/doc/refman/8.0/en/installing.html
創(chuàng)建一個專用于主從復(fù)制的用戶: 在主服務(wù)器上,使用以下命令創(chuàng)建一個用于主從復(fù)制的用戶:
mysql -u root -p
GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%' IDENTIFIED BY 'your_password';
FLUSH PRIVILEGES;
修改主服務(wù)器的my.cnf配置文件:
在主服務(wù)器上,找到并編輯my.cnf配置文件。通常位于/etc/mysql/my.cnf
或/etc/my.cnf
。添加或修改以下內(nèi)容:
[mysqld]
server-id=1
log-bin=mysql-bin
binlog-do-db=your_database_name
binlog-format=row
其中,server-id
是主服務(wù)器的唯一標(biāo)識,log-bin
是用于存儲二進(jìn)制日志文件的路徑,binlog-do-db
是需要復(fù)制的數(shù)據(jù)庫名稱,binlog-format
是指定復(fù)制時使用的二進(jìn)制日志格式。
重啟主服務(wù)器的MySQL服務(wù): 在主服務(wù)器上,重啟MySQL服務(wù)以應(yīng)用更改:
sudo service mysql restart
獲取主服務(wù)器的二進(jìn)制日志文件名和位置: 在主服務(wù)器上,運(yùn)行以下命令以獲取當(dāng)前的二進(jìn)制日志文件名和位置:
mysql -u root -p -e "SHOW MASTER STATUS;"
記下輸出結(jié)果中的File
和Position
值,因為這些值將在從服務(wù)器上配置復(fù)制時使用。
導(dǎo)出主服務(wù)器上需要復(fù)制的數(shù)據(jù)庫: 在主服務(wù)器上,使用以下命令導(dǎo)出需要復(fù)制的數(shù)據(jù)庫:
mysqldump -u root -p your_database_name > your_database_name.sql
將導(dǎo)出的數(shù)據(jù)庫導(dǎo)入到從服務(wù)器: 將導(dǎo)出的數(shù)據(jù)庫文件傳輸?shù)綇姆?wù)器,并使用以下命令導(dǎo)入:
mysql -u root -p your_database_name< your_database_name.sql
修改從服務(wù)器的my.cnf配置文件:
在從服務(wù)器上,找到并編輯my.cnf配置文件。通常位于/etc/mysql/my.cnf
或/etc/my.cnf
。添加或修改以下內(nèi)容:
[mysqld]
server-id=2
replicate-do-db=your_database_name
其中,server-id
是從服務(wù)器的唯一標(biāo)識,replicate-do-db
是需要復(fù)制的數(shù)據(jù)庫名稱。
配置從服務(wù)器連接到主服務(wù)器: 在從服務(wù)器上,運(yùn)行以下命令以配置從服務(wù)器連接到主服務(wù)器:
mysql -u root -p -e "CHANGE MASTER TO MASTER_HOST='master_server_ip', MASTER_USER='repl_user', MASTER_PASSWORD='your_password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS= 154;"
其中,MASTER_HOST
是主服務(wù)器的IP地址,MASTER_USER
和MASTER_PASSWORD
是在步驟2中創(chuàng)建的復(fù)制用戶的用戶名和密碼,MASTER_LOG_FILE
和MASTER_LOG_POS
是在步驟5中獲取的二進(jìn)制日志文件名和位置。
啟動從服務(wù)器上的復(fù)制進(jìn)程: 在從服務(wù)器上,運(yùn)行以下命令以啟動復(fù)制進(jìn)程:
mysql -u root -p -e "START SLAVE;"
檢查從服務(wù)器的復(fù)制狀態(tài): 在從服務(wù)器上,運(yùn)行以下命令以檢查復(fù)制狀態(tài):
mysql -u root -p -e "SHOW SLAVE STATUS\G"
如果一切正常,您應(yīng)該會看到Slave_IO_Running
和Slave_SQL_Running
狀態(tài)為YES
。
現(xiàn)在,您已經(jīng)成功配置了MySQL主從復(fù)制。從服務(wù)器將自動從主服務(wù)器復(fù)制數(shù)據(jù),并保持與主服務(wù)器同步。