主庫IP:192.168.1.10 從庫IP:192.168.1.11 1、主庫配置編輯my.cnf: # 啟用二進(jìn)制日志 log_bin = mysql-bin server-id = 111 log-bin-index=mysql-bin.index sync_binlog=1 binlog_format=mixed binlog-do-db = testdb //同步數據庫 binlog-ignore-db = mysql binlog-ignore-db = performance_schema binlog-ignore-db = information_schema binlog_checksum=NONE 2、創(chuàng )建同步賬號 mysql> grant replication slave on *.* to slave@192.168.1.11 identified by '123456' 3、主庫狀態(tài) mysql> flush privileges; mysql> show master status; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000008 | 337 | | | +------------------+----------+--------------+------------------+ 記錄下二進(jìn)制日志文件名和位置 4、從庫配置文件配置
# [必須]啟用二進(jìn)制日志 log-bin=mysql-bin # [必須]服務(wù)器唯一ID,默認是1,一般取IP最后一段 server-id=222 relay-log-index = slave-relay-bin.index relay-log = slave-relay-bin sync_master_info = 1 sync_relay_log = 1 sync_relay_log_info = 1
5、配置連接主庫 mysql> change master to master_host='192.168.1.10',master_user='slave',master_password='123456', master_log_file='mysql-bin.000008',master_log_pos=337; 6、開(kāi)始同步 mysql> start slave;
mysql> show slave statusG;
7、正常狀態(tài) Slave_IO_Running: Yes
Slave_SQL_Running: Yes
8、解決主從不同步 先上Master庫: mysql>show processlist; 查看下進(jìn)程是否Sleep太多。發(fā)現很正常。 show master status; 也正常。
mysql> show master status; 再到Slave上查看 mysql> show slave statusG Slave_IO_Running: Yes Slave_SQL_Running: No 可見(jiàn)是Slave不同步 下面介紹兩種解決方法: 方法一:忽略錯誤后,繼續同步 該方法適用于主從庫數據相差不大,或者要求數據可以不完全統一的情況,數據要求不嚴格的情況 解決: stop slave; #表示跳過(guò)一步錯誤,后面的數字可變 set global sql_slave_skip_counter =1; start slave; 之后再用mysql> show slave statusG 查看: Slave_IO_Running: Yes Slave_SQL_Running: Yes ok,現在主從同步狀態(tài)正常 方式二:重新做主從,完全同步 該方法適用于主從庫數據相差較大,或者要求數據完全統一的情況 解決步驟如下: 1.先進(jìn)入主庫,進(jìn)行鎖表,防止數據寫(xiě)入 使用命令: mysql> flush tables with read lock; 注意:該處是鎖定為只讀狀態(tài),語(yǔ)句不區分大小寫(xiě) 2.進(jìn)行數據備份 #把數據備份到mysql.bak.sql文件 [root@server01 mysql]#mysqldump -uroot -p -hlocalhost > mysql.bak.sql 這里注意一點(diǎn):數據庫備份一定要定期進(jìn)行,確保數據萬(wàn)無(wú)一失 3.查看master 狀態(tài)
mysql> show master status; 4.把mysql備份文件傳到從庫機器,進(jìn)行數據恢復 #使用scp命令 [root@server01 mysql]# scp mysql.bak.sql root@192.168.128.11:/tmp/ 5.停止從庫的狀態(tài) mysql> stop slave; 6.然后到從庫執行mysql命令,導入數據備份 mysql> source /tmp/mysql.bak.sql 7.設置從庫同步,注意該處的同步點(diǎn),就是主庫show master status信息里的| File| Position兩項 change master to master_host = '192.168.128.10', master_user = 'slave', master_port=3306, master_password='123456', master_log_file = 'mysqld-bin.000001', master_log_pos=3260; 8.重新開(kāi)啟從同步 mysql> start slave; 9.查看同步狀態(tài) mysql> show slave statusG 查看: Slave_IO_Running: Yes Slave_SQL_Running: Yes |
2006-2014 IT0355.com 山西中聯(lián)科創(chuàng )科技有限公司. All Rights Reserved.
電話(huà):0355-3728808 傳真:0355-3728808
ICP備案號:晉ICP備06003721號本站已通過(guò)國際W3C認證
關(guān)鍵字:中聯(lián)科創(chuàng ),長(cháng)治網(wǎng)站建設,長(cháng)治網(wǎng)站推廣,長(cháng)治網(wǎng)絡(luò )工程,長(cháng)治軟件開(kāi)發(fā),山西網(wǎng)站建設,山西軟件開(kāi)發(fā) 長(cháng)治五金網(wǎng)