項目有一個公共類是comm,分別爲不同的客戶指定了不同的庫,且庫在不同的服務器上。有些存儲過程需要直接連comm庫,以實現數據分析任務。早就知道mysql可以主從備份。因此考慮用這種方式,實現在主庫公共數據同步到另一臺數據庫中。以實現能夠將同一存儲過程在不同的服務器都能夠正確執行。
參考 https://www.cnblogs.com/gl-developer/p/6170423.html
首先,配置mysql vi /etc/my.cnf。注意使用/etc/mysql/目錄時,要配置安全權限 chmod 777 -R /etc/mysql/ 進行處理。
[mysqld]
log-bin=/etc/mysql/mysql-bin #開啓二進制日誌
server-id=255 #設置server-id
binlog-do-db = game #只同步數據庫
binlog-ignore-db = mysql #不同步的數據庫
sync_binlog=1
登陸mysql的控制檯或者 query查詢器執行
create USER 'repl'@'%' IDENTIFIED BY '123456';# %號可以替換成相對應的允許連接的IP 123456爲密碼 rep1爲賬戶
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
flush privileges;
SHOW MASTER STATUS; #檢查主服務器的狀態,記下相應的參數值
重啓mysql服務器 restart mysqld.service
在從服務器中也要配置相應的參數
log-bin=/etc/mysql/mysql-bin #開啓二進制日誌
server-id=128 #設置server-id,一般是IP地址的末位
log_slave_updates=1
導入以前的數據。使用其它方法將原來主服務器上的數據導入。並在從服務器的查詢分析器中執行下面的代碼
CHANGE MASTER TO
MASTER_HOST='116.62.xxx.xxx',
MASTER_USER='rep1',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000003',
MASTER_LOG_POS=73;
開始執行主從複製
start slave; #在查詢分析器中執行
查看複製的狀態
show slave status ; #在查詢分析器中執行
標紅色的纔是代表正確執行的。我的剛開始是
Slave_IO_Running:connection 有三個原因導致。我的原因是賬戶不對。其它原因可以百度一下。
經測試,在目標庫的,insert ,delete ,update都可以正確複製。忽略的庫不受影響。