一、選準備兩臺版本相同的MySQL數據庫。
主機:A:192.168.0.100
從機:B:192.168.0.101
二、先登錄主機A設置可創建具有複製權限的帳戶。
mysql>GRANT REPLICATION SLAVE ON *.* TO 'backup'@'192.168.0.101' IDENTIFIED BY '123456'
更多可參考:MySQL創建帳號的操作。
三、打開主機A的my.ini配置文件,輸入
server-id = 1 #主機的標識,整數
binlog-do-db = mstest #需要備份的數據庫,多個寫多行。
binlog-ignore-db = mysql #不需要備份的數據庫,多個寫多行。
log-bin =mysql2-bin #日誌的文件
read-only =0 #主機,讀寫都可以。
四、打開從機B的my.ini配置文件,輸入。
server-id =2 #從機的標識,整數
log_bin =mysql2-bin #日誌文件
master-host =localhost #主機的host
master-user =root #第二步中創建的帳號
master-pass =123 #第二步中創建帳號的密碼
master-port =3305 #主機端口號
master-connect-retry =60 #如果從服務器發現主機斷掉,重新連接的時間差
replication-do-db =mstest #只複製的某個數據庫
replication-ignore-db =mysql #不進行復制的數據庫
五、同步數據庫
分別重啓主機和從機。
先使用mysqldump導出主機A的數據,然後再把導出的數據同步到從機B上。
六、驗證同步是否成功
1、在主機A上 執行命令:
mysql>show master status\G;
出現如下內容
File: mysql-bin.000001
Position: 1374
Binlog_Do_DB: mstest
Binlog_Ignore_DB: mysql
2、在從機B上執行命令
mysql>show slave status\G;
出現一下內容
....
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
....
如果兩個都是yes說明配置成功。
七、錯誤說明
如果在6.2中輸出的內容爲
//其他內容
Slave_IO_Running: No
Slave_SQL_Running: Yes
//其他內容
說明配置主從複製失敗
解決辦法:
在從機B上執行。
slave stop;
CHANGE MASTER TO
MASTER_HOST='xxx', #主機host
MASTER_USER='xx', #帳號
MASTER_PASS='xx', #密碼
MASTER_PORT=3306, #主機端口
MASTER_LOG_FILE='xxx-bin.000001', #日誌文件,爲在6.1中顯示的File的值。
MASTER_LOG_POS=1374; #日誌位置,爲在6.1中顯示的Position的值
slave start;
如果問題還存在,在執行一下操作
1、重啓主庫
2、給從庫重新授權,
3、執行一下命令。
slave stop;
reset slave;
slave start;