- 論壇徽章:
- 0
|
一臺(tái)重要庫的slave的sql_thread停止了。
Last_Errno: 1366
Last_Error: Error 'Incorrect
string value: '\xCE\xD2\xB6\xD4\xD5\xE2...' for column 'title' at row
1' on query. Default database: 'mail_app'. Query: 'insert into
vote_topic(id,userid,title,category) values
(21,0x746573743130407669702E736F68752E636F6D,0xCED2B6D4D5E2B8F6B9A6C4DCB5C4D0E8C7F3B3CCB6C8,11)'
這個(gè)slave可是相當(dāng)關(guān)鍵,不能置后,看了一下出問題的表記錄數(shù)很少,并且從中文內(nèi)容上看起來像是還在測(cè)試,先把出問題的sql跳過再說。
日志里記錄了兩個(gè)表出了同步錯(cuò)誤。都是utf8的表。
這兩個(gè)表的數(shù)據(jù)在master和slave上不一致了,master要多幾條。
錯(cuò)誤是可重現(xiàn)的,把未同步過去的數(shù)據(jù)刪除,讓應(yīng)用再執(zhí)行同樣操作,sql_thread立刻停止。
應(yīng)用jdbc連接串里有characterEncoding=gbk,改成utf8就好了。問題解決了,但原因不明。master和slave為何有不同的結(jié)果,字符集的設(shè)置是一樣的,表結(jié)構(gòu)和表的字符集也是一樣的。
又對(duì)比了relay log和bin log,內(nèi)容是完全一樣的,包括其中設(shè)置字符集的語句:
/*!\C gbk *//*!*/;
SET @@session.character_set_client=28,@@session.collation_connection=28,@@session.collation_server=8/*!*/;
同樣的動(dòng)作在master和slave上結(jié)果不同,原因不明。
mysql版本是5.1.30
本文來自ChinaUnix博客,如果查看原文請(qǐng)點(diǎn):http://blog.chinaunix.net/u/25477/showart_2153339.html |
|