主庫IP:192.168.1.10 從庫IP:192.168.1.11 1、主庫配置編輯my.cnf: # 啟用二進制日志 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、創建同步賬號 mysql> grant replication slave on *.* to slave@192.168.1.11 identified by '123456' 3、主庫狀態 mysql> flush privileges; mysql> show master status; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000008 | 337 | | | +------------------+----------+--------------+------------------+ 記錄下二進制日志文件名和位置 4、從庫配置文件配置
# [必須]啟用二進制日志 log-bin=mysql-bin # [必須]服務器唯一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、開始同步 mysql> start slave;
mysql> show slave statusG;
7、正常狀態 Slave_IO_Running: Yes
Slave_SQL_Running: Yes
8、解決主從不同步 先上Master庫: mysql>show processlist; 查看下進程是否Sleep太多。發現很正常。 show master status; 也正常。
mysql> show master status; 再到Slave上查看 mysql> show slave statusG Slave_IO_Running: Yes Slave_SQL_Running: No 可見是Slave不同步 下面介紹兩種解決方法: 方法一:忽略錯誤后,繼續同步 該方法適用于主從庫數據相差不大,或者要求數據可以不完全統一的情況,數據要求不嚴格的情況 解決: stop slave; #表示跳過一步錯誤,后面的數字可變 set global sql_slave_skip_counter =1; start slave; 之后再用mysql> show slave statusG 查看: Slave_IO_Running: Yes Slave_SQL_Running: Yes ok,現在主從同步狀態正常 方式二:重新做主從,完全同步 該方法適用于主從庫數據相差較大,或者要求數據完全統一的情況 解決步驟如下: 1.先進入主庫,進行鎖表,防止數據寫入 使用命令: mysql> flush tables with read lock; 注意:該處是鎖定為只讀狀態,語句不區分大小寫 2.進行數據備份 #把數據備份到mysql.bak.sql文件 [root@server01 mysql]#mysqldump -uroot -p -hlocalhost > mysql.bak.sql 這里注意一點:數據庫備份一定要定期進行,確保數據萬無一失 3.查看master 狀態
mysql> show master status; 4.把mysql備份文件傳到從庫機器,進行數據恢復 #使用scp命令 [root@server01 mysql]# scp mysql.bak.sql root@192.168.128.11:/tmp/ 5.停止從庫的狀態 mysql> stop slave; 6.然后到從庫執行mysql命令,導入數據備份 mysql> source /tmp/mysql.bak.sql 7.設置從庫同步,注意該處的同步點,就是主庫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.重新開啟從同步 mysql> start slave; 9.查看同步狀態 mysql> show slave statusG 查看: Slave_IO_Running: Yes Slave_SQL_Running: Yes |
2006-2014 IT0355.com 山西中聯科創科技有限公司. All Rights Reserved.
電話:0355-3728808 傳真:0355-3728808
ICP備案號:晉ICP備06003721號本站已通過國際W3C認證
關鍵字:中聯科創,長治網站建設,長治網站推廣,長治網絡工程,長治軟件開發,山西網站建設,山西軟件開發 長治五金網