mysql 同步更新_MySQL slave 不能同步更新
MySQL slave 不能同步更新
mysql slave server 上進程停止?? 重啟后 不接收 master上的更新
mysql>show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.10.168
Master_User: admin
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000055
Read_Master_Log_Pos: 720589499
Relay_Log_File: YD227-relay-bin.000108
Relay_Log_Pos: 505783744
Relay_Master_Log_File: mysql-bin.000051
Slave_IO_Running: Yes
Slave_SQL_Running: No
Replicate_Do_DB: try2u
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 1062
Last_Error: Error 'Duplicate entry '2007-09-25 12:39:31' for key 4' on query. Default database: 'try2u'. Query: 'INSERT INTO try2u.pdc_trylog SET pdc_id = '370' ,?? uid = '1863421' , got = '0' , rate_log = '0' , ip_log ='220.196.157.210''
錯誤找到:?? Slave_SQL_Running: No
google到原因:1.程序可能在slave上進行了寫操作?? 2.也可能是slave機器重起后,事務(wù)回滾造成的.
明顯是第二個原因造成
解決辦法:
mysql> slave stop;
mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
mysql> slave start;
***************
幾個跟熱備有關(guān)的mysql命令:(需要在mysql命令行界面或query )
stop slave??? #停止同步
start slave??? #開始同步,從日志終止的位置開始更新。
SET SQL_LOG_BIN=0|1 #主機端運行,需要super權(quán)限,用來開停日志,隨意開停,會造成主機從機數(shù)據(jù)不一致,造成錯誤
SET?GLOBAL SQL_SLAVE_SKIP_COUNTER=n?# 客戶端運行,用來跳過幾個事件,只有當(dāng)同步進程出現(xiàn)錯誤而停止的時候才可以執(zhí)行。
RESET MASTER #主機端運行,清除所有的日志,這條命令就是原來的FLUSH MASTER
RESET SLAVE?? #從機運行,清除日志同步位置標(biāo)志,并重新生成master.info
雖然重新生成了master.info,但是并不起用,最好,將從機的mysql進程重啟一下,
LOAD TABLE tblname FROM MASTER #從機運行,從主機端重讀指定的表的數(shù)據(jù),每次只能讀取一個,受timeout時間限制,需要調(diào)整timeout時間。執(zhí)行這個命令需要同步賬號有 reload和super權(quán)限。以及對相應(yīng)的庫有select權(quán)限。如果表比較大,要增加net_read_timeout 和 net_write_timeout的值
LOAD DATA FROM MASTER #從機執(zhí)行,從主機端重新讀入所有的數(shù)據(jù)。執(zhí)行這個命令需要同步賬號有reload和super權(quán)限。以及對相應(yīng)的庫有select權(quán)限。如果表比較大,要增加net_read_timeout 和 net_write_timeout的值
CHANGE MASTER TO master_def_list #在線改變一些主機設(shè)置,多個用逗號間隔,比如
CHANGE MASTER TO
[MASTER_HOST='host_name',] #主機名
[MASTER_USER='user_name',] #連接數(shù)據(jù)庫的用戶名
[MASTER_PASSWORD='password',] #連接數(shù)據(jù)庫的用戶名對應(yīng)的密碼
[MASTER_PORT = port_num,] #主機數(shù)據(jù)庫端口
[MASTER_LOG_FILE = 'master_log_name',] #指定當(dāng)前準(zhǔn)備開始同步的主機的日志文件名
[MASTER_LOG_POS = master_log_pos,]; #指定文件中位置
MASTER_POS_WAIT() #從機運行
SHOW MASTER STATUS #主機運行,看日志導(dǎo)出信息
SHOW SLAVE HOSTS #主機運行,看連入的從機的情況。
SHOW SLAVE STATUS (slave)
SHOW MASTER LOGS (master)
SHOW BINLOG EVENTS [ IN 'logname' ] [ FROM pos ] [ LIMIT [offset,] rows ]
PURGE [MASTER] LOGS TO 'logname' ; PURGE [MASTER] LOGS BEFORE 'date'
總結(jié)
以上是生活随笔為你收集整理的mysql 同步更新_MySQL slave 不能同步更新的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。