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