Mysql的實時同步-雙機互備(雙master) 設置方法: 步一 設 A 服務服 (192.168.1.43) 上 用戶為 backup, 123456 , 同步的數據庫為test; B 服務服 (192.168.1.23) 上 用戶為 root, 123456, 同步的數據庫為test; 步二 配置 mysql.ini: A服務器 #Replication master server-id = 10 log-bin="E:/MySQL/logs/mysql_binary_log" binlog-do-db=test binlog-Ignore-db=information_schema # 單向備份時 A只需上面部分 B只需下面部分 下面部分同樣需加server-id # Replication slave master-host="192.168.1.23" master-user=root master-password="123456" master-port=3306 master-connect-retry=60 replicate-do-db=test replicate-Ignore-db=information_schema B服務器 #Replication master server-id = 2 log-bin="c:/mysql5/logs/mysql_binary_log" binlog-do-db=test binlog-Ignore-db=information_schema # Replication slave master-host="192.168.1.43" master-user=backup master-password=123456 master-port=3306 master-connect-retry=60 replicate-do-db=test replicate-Ignore-db=information_schema ============================================================= 解釋: 3)binlog-do-db=test 表示需要備份的數據庫是test這個數據庫, 如果需要備份多個數據庫,那麼應該寫多行,如下所示: binlog-do-db=backup1 binlog-do-db=backup2 binlog-do-db=backup3 解釋: 1) server-id=2表示本機器的序號, A,B的server-id 不能相同; 2)log-bin表示打開binlog,打開該選項才可以通過I/O寫到Slave的relay-log,也是可以進行replication的前提; 其中mysql_binary_log是日志文件的名稱,mysql將建立不同擴展名,文件名為mysql_binary_log的幾個日志文件. 3) master-host="192.168.1.23" 表示A做slave時的master為192.168.1.23; 4) master-user=root 這裡表示master上開放的一個有權限的用戶,使其可以從slave連接到master並進行復制; 5) master-password=123456 表示授權用戶的密碼; 6) master-port=3306 master上MySQL服務Listen3306端口; 7) master-connect-retry=60 同步間隔時間; 8) replicate-do-db=test 表示同步backup數據庫; 最後重新啟動兩台機器的mysql. ------------------------------------------------ 查看狀態 及調試 1,查看master的狀態 SHOW MASTER STATUS; Position 不應為0 2,查看slave的狀態 show slave status; Slave_IO_Running | Slave_SQL_Running 這兩個字段 應為 YES|YES. show processlist; 會有兩條記錄與同步有關 state為 Has read all relay log; waiting for the slave I/O thread to update it 和s Waiting for master to send event . 3,錯誤日志 MySQL安裝目錄dataHostname.err 主服務器上的相關命令: show master status show slave hosts show {master|binary} logs show binlog events purge {master|binary} logs to ’log_name’ purge {master|binary} logs before ’date’ reset master(老版本flush master) set sql_log_bin={0|1} ----------------------------------------------------------------------------------- 從服務器上的相關命令: slave start slave stop SLAVE STOP IO_THREAD //此線程把master段的日志寫到本地 SLAVE start IO_THREAD SLAVE STOP SQL_THREAD //此線程把寫到本地的日志應用於數據庫 SLAVE start SQL_THREAD reset slave SET GLOBAL SQL_SLAVE_SKIP_COUNTER load data from master show slave status(SUPER,REPLICATION CLIENT) CHANGE MASTER TO MASTER_HOST=, MASTER_PORT=,MASTER_USER=, MASTER_PASSWORD= //動態改變master信息 PURGE MASTER [before ’date’] 刪除master端已同步過的日志