Mysql主從數據庫同步詳解 主服務器設置 1、創建一個復制用戶,具有 replication slave 權限 [sql] mysql>grant replication slave on *.* to ‘repl’@’192.168.1.22′ identified by ‘repl’; 2、編輯主服務器my.cnf文件 [plain] Server-id=1 #主機標示,整數 log-bin= /var/log/mysql/mysql-bin.log #確保此文件可寫 read-only =0 #主機,讀寫都可以 Binlog-do-db=test #需要備份數據,,可以有多個用“,”分開,比如test1,test2 Binlog-ignore-db=mysql #不需要備份的數據庫 3、設置讀鎖 [sql] mysql>flush tables with read lock; 4、得到binlog日志文件名和偏移量 [sql] mysql>show master status; 5、備份要同步的數據庫 [sql] mysqldump test > test.sql 6、解鎖 [sql] mysql>unlock tables; 從服務器設置 1、編輯從服務器my.cnf文件 [plain] server-id = 2 log_bin = /var/log/mysql/mysql-bin.log master-host =192.168.1.100 #是主服務器的IP地址 master-user =slave <span style="font-family: Arial, Helvetica, sans-serif;">#</span><span style="font-family: Arial, Helvetica, sans-serif;">用於和主服務器同步數據的用戶名,我們在配置主服務器已經添加了就是slave</span> master-pass =123456 master-port =3306 #主服務器的端口 master-connect-retry=60 #如果從服務器發現主服務器斷掉,重新連接的時間差(秒) replicate-do-db =test #只復制某個庫 replicate-ignore-db=mysql #不復制某個庫 2、啟動從服務器slave線程 [sql] mysql>start slave; 3、驗證 在主機A中,mysql>show master status\G; 在從機B中,mysql>show slave status\G; 看到大致這些內容 File: mysql-bin.000001 Position: 1374 Binlog_Do_DB: test Binlog_Ignore_DB: mysql