亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > MySQL > 正文

mysql數據校驗過程中的字符集問題處理

2024-07-24 13:05:49
字體:
來源:轉載
供稿:網友

場景:
主庫DB:utf8字符集
備庫DB:gbk字符集

需求:
校驗主備數據是否一致,并且修復

校驗過程:
設置主庫連接為utf8,設置備庫連接為gbk,分別進行查詢,將返回的的結果集按記錄逐字段比較。

顯示結果:
原本相同的漢字字符,數據校驗認為不一致。

原因分析:
對于主庫而已,由于建立連接的字符集為UTF8,則返回的漢字字符編碼為UTF8格式;對于備庫而言則是GBK格式,而程序中通過字符串比較函數strcasecmp進行比較,顯然不同的字符集編碼,相同的字符有不同的二進制,因此結果肯定不會相等。

進一步分析:
那么對于這種情況,建立連接應該采用哪種字符集呢?GBK or UTF8。其實選擇任何一種字符集都是OK的,只要是訪問主庫和備庫的字符集保持一致即可,唯一的區別在于,若選擇的字符集與客戶端的字符集不一致,可能導致無法正常顯示字符,即字符顯示為亂碼。

我們以客戶端的字符集為例,詳細說說三種情況:【這里的客戶端可以認為是SecureCRT】
備注:綠色框代表DB字符集,黃色框代表連接字符集,橙色框代表客戶端
第一種情況:

mysql數據校驗過程中的字符集問題處理

就是上述的情況,主庫返回字符的GBK編碼,備庫返回字符的UTF8編碼,因此進行字段比對,則會出現誤差。

第二種情況:

mysql數據校驗過程中的字符集問題處理

訪問主庫的連接不變,備庫連接由UTF8變為GBK,因此進行返回時,數據庫會將DB的字符集轉為GBK返回給客戶端,那么對于客戶端而已,相同字符都是通過GBK編碼表示,因此二進制相等,校驗結果正確。

第三種情況:

mysql數據校驗過程中的字符集問題處理

   訪問主庫和備庫的連接都是UTF8,因此對于主庫而已,返回給客戶端的字符編碼由GBK轉為UTF8,此時主庫和備庫都是UTF8編碼,校驗結果正確。但由于客戶端實質是GBK編碼方式顯示,因此返回的漢字字符都是亂碼,但不影響校驗結果的正確性。

修復:

      既然選擇與主備庫任一一個相同的字符集去訪問,都不會影響校驗結果的正確性,那么影響修復呢?由于UTF8的編碼范圍比GBK編碼范圍要大,因此若采用GBK連接訪問UTF8編碼DB,有可能出現部分字符GBK不能表示的情況。

我們拿第二種情況說明,此時主庫為GBK,備庫為UTF8,使用GBK訪問UTF8。假設存在UTF8轉為GBK過程中部分字符丟失,這時候主備庫肯定是不一致的,因為存在部分字符GBK無法表示。 假設修復語句如下:

Update  t set c1=master_value  where  c1=slave_value  and id=?

其中t表示表名,id是主鍵表示某一行,master_value為主庫c1列的值,slave_value為備庫c1列的值。此時,slave_value由于UTF8轉為GBK已經丟失,因此語句執行最終影響0行記錄,無法修復。

 

結論:

客戶端訪問兩個不同字符集庫進行數據校驗時,連接采用表示范圍更大的字符集。比如我們常用的字符集表示范圍如下:

Latin<gb2312<gbk<utf8

 

附:mysql客戶端與服務器通信時字符集編碼轉換流程

相關參數:

– character_set_client:客戶端來源數據使用的字符集

– character_set_connection:連接層字符集

– character_set_results:查詢結果字符集

– character_set_database:當前選中數據庫的默認字符集

– character_set_system:系統元數據(字段名等)字符集

 1.客戶端請求服務器

1)將client的字符集轉為connection字符集

2)將connection字符集轉為DB內部的字符集

 

 2.服務器返回結果給客戶端

1)將DB內部字符集轉為connection字符集

2)將connection字符集轉為character_set_results字符集

 

3.設置字符集命令:set names 字符編碼

指定客戶端與服務器通信的字符集,包括請求與返回。

SET NAMES 'x'  等價于:

SET character_set_client = x;

SET character_set_results = x;

SET character_set_connection = x;

附圖:

mysql數據校驗過程中的字符集問題處理

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩av中文在线| 国产精品十八以下禁看| 亚洲视频axxx| 国产精品久久久久77777| 亚洲无限乱码一二三四麻| 亚洲天堂第一页| 亚洲电影免费观看高清| 亚洲精品成人免费| 国产精品美女免费| 亚洲欧美日韩中文视频| 欧美黄色小视频| 中文字幕亚洲一区| 国产综合久久久久| 91亚洲精华国产精华| 亚洲精品suv精品一区二区| 欧美电影免费在线观看| 日韩大陆毛片av| 日韩暖暖在线视频| 97在线日本国产| 国产精品揄拍一区二区| 亚洲国产欧美一区二区丝袜黑人| 国产一区视频在线播放| 免费91麻豆精品国产自产在线观看| 日韩免费观看av| 成人网在线免费看| 理论片在线不卡免费观看| 欧美特黄级在线| 欧美激情在线视频二区| 国产suv精品一区二区三区88区| 91系列在线播放| 亚洲网在线观看| 欧美最猛性xxxxx亚洲精品| 欧美在线观看日本一区| 国产视频亚洲精品| 51午夜精品视频| 日韩电影免费在线观看中文字幕| 欧美成人亚洲成人日韩成人| 国产精品第一视频| 日韩在线免费视频观看| 亚洲跨种族黑人xxx| 亚洲国产另类 国产精品国产免费| 国产伦精品免费视频| 久久免费观看视频| 91在线观看免费高清完整版在线观看| 97超级碰碰碰| 久久精品亚洲国产| 中文字幕精品在线| 中文.日本.精品| 国产精品成人av在线| 精品香蕉一区二区三区| 午夜伦理精品一区| 久久精品电影网站| 欧美性极品xxxx做受| 欧美综合激情网| 亚洲色图日韩av| 亚洲va欧美va国产综合剧情| 欧美成人性生活| 68精品国产免费久久久久久婷婷| 国产日韩精品一区二区| 久久久久国产视频| 精品亚洲精品福利线在观看| 国产最新精品视频| 精品久久久久久国产| 91性高湖久久久久久久久_久久99| 在线精品视频视频中文字幕| 欧美成人黑人xx视频免费观看| 奇米成人av国产一区二区三区| 久久精品视频亚洲| 亚洲欧洲国产精品| 久久精品成人一区二区三区| 国产免费一区二区三区在线观看| 中文字幕自拍vr一区二区三区| 国产一区二区三区在线观看网站| 久久久97精品| 国产99久久精品一区二区永久免费| 久久成人免费视频| 久久国产精品久久久久久| 国内精品久久久| 日本欧美国产在线| 亚洲无限av看| 欧美激情精品久久久久久久变态| 这里精品视频免费| 人人爽久久涩噜噜噜网站| 在线观看免费高清视频97| 午夜美女久久久久爽久久| 欧美国产视频日韩| 一区二区三区黄色| 精品福利免费观看| 精品久久久久久国产91| 午夜精品久久久久久久99热浪潮| 欧美在线视频网站| 亚洲国模精品私拍| 久久影视电视剧免费网站清宫辞电视| 日本精品免费一区二区三区| 久久99精品久久久久久噜噜| 亚洲精品久久久久国产| 国产亚洲成av人片在线观看桃| 国产一区私人高清影院| www国产91| 美日韩精品免费观看视频| 国产成人91久久精品| 国产精品色婷婷视频| 欧美福利视频网站| 欧美激情久久久久久| 欧美激情按摩在线| 欧美黑人狂野猛交老妇| 奇米4444一区二区三区| 欧美亚洲日本网站| 国产成人精品久久二区二区| 欧美贵妇videos办公室| 日韩欧美精品网站| 久久久精品网站| 久久久人成影片一区二区三区| 欧美日韩午夜激情| 日本精品一区二区三区在线| 97超视频免费观看| 97久久精品视频| 国产精品v片在线观看不卡| 亚洲欧美日韩成人| 国产欧美韩国高清| 波霸ol色综合久久| 久久久久亚洲精品国产| 国产综合福利在线| 欧美性感美女h网站在线观看免费| 久久久www成人免费精品张筱雨| 国产欧洲精品视频| 国产精自产拍久久久久久| 国产精品视频播放| 国产精品美女视频网站| 日韩电影中文 亚洲精品乱码| 久久天天躁狠狠躁夜夜爽蜜月| 国产日韩精品综合网站| 97色在线观看免费视频| 欧美性xxxx18| 国产欧美日韩中文字幕在线| 成人国产在线激情| 亚洲高清一区二| 国产精品揄拍500视频| 日韩美女在线看| 国产日产欧美精品| 久久影院中文字幕| 欧美一级成年大片在线观看| 97久久超碰福利国产精品…| 一区二区三区回区在观看免费视频| 亚洲激情第一页| 91午夜理伦私人影院| 97在线看免费观看视频在线观看| 国内精品在线一区| 国产偷亚洲偷欧美偷精品| 日韩国产高清视频在线| 欧美日韩xxxxx| 欧美专区福利在线| 精品国偷自产在线视频99| 日韩禁在线播放| 亚洲欧美日韩爽爽影院| 久久成人这里只有精品| 伊人一区二区三区久久精品| 国产精品9999| 成人黄色在线观看| 成人情趣片在线观看免费| 成人性生交大片免费看小说| 亚洲美女www午夜| 九九热这里只有在线精品视| 国产精品午夜一区二区欲梦|