真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何正確更換MySQL數(shù)據(jù)庫(kù)字符集

這篇文章將為大家詳細(xì)講解有關(guān)如何正確更換MySQL數(shù)據(jù)庫(kù)字符集,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、永清網(wǎng)絡(luò)推廣、小程序開發(fā)、永清網(wǎng)絡(luò)營(yíng)銷、永清企業(yè)策劃、永清品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供永清建站搭建服務(wù),24小時(shí)服務(wù)熱線:028-86922220,官方網(wǎng)址:www.cdcxhl.com

作為資深的DBA程序員,在工作中是否會(huì)遇到更這樣的情況呢?

原有數(shù)據(jù)庫(kù)的字符集由于前期規(guī)劃不足,隨著業(yè)務(wù)的發(fā)展不能滿足業(yè)務(wù)的需求。如原來業(yè)務(wù)系統(tǒng)用的是utf8字符集,后期有存儲(chǔ)表情符號(hào)的需求,uft8字符集就不能滿足此時(shí)的業(yè)務(wù)需求了。需要用utf8mb4字符集。

數(shù)據(jù)庫(kù)遷移,源和目標(biāo)數(shù)據(jù)庫(kù)的字符集不一致,需要在遷移之前進(jìn)行轉(zhuǎn)換。

更換數(shù)據(jù)庫(kù)字符集的時(shí)候明明很認(rèn)(jian)真(dan),總是會(huì)出現(xiàn)各種各樣的問題,導(dǎo)致更換之后數(shù)據(jù)庫(kù)的數(shù)據(jù)出現(xiàn)亂碼!

如何正確更換MySQL數(shù)據(jù)庫(kù)字符集

今天小編就同大家一起梳理下如何正確更換數(shù)據(jù)庫(kù)的字符集,下文將簡(jiǎn)單講解數(shù)據(jù)庫(kù)不同字符集的轉(zhuǎn)換過程。步驟轉(zhuǎn)化,杜絕亂碼!

常用字符集

  • GBK是國(guó)家標(biāo)準(zhǔn)GB2312基礎(chǔ)上擴(kuò)容后兼容GB2312的標(biāo)準(zhǔn)。GBK的文字編碼是用雙字節(jié)來表示的,即不論中、英文字符均使用雙字節(jié)來表示,為了區(qū)分中文,將其***位都設(shè)定成1。GBK包含全部中文字符,是國(guó)家編碼,通用性比UTF8差,不過UTF8占用的數(shù)據(jù)庫(kù)比GBK大。支持簡(jiǎn)體中文及繁體中文。

  • utf8字符集:是一種UTF-8編碼的Unicode字符集,每個(gè)字符占用1到3個(gè)字節(jié)。UTF-8包含全世界所有國(guó)家需要用到的字符,是國(guó)際編碼,通用性強(qiáng)。

如何正確更換MySQL數(shù)據(jù)庫(kù)字符集

  • utf8mb4字符集:是一種UTF-8編碼的Unicode字符集,每個(gè)字符占用1到4個(gè)字節(jié)??梢愿采wBMP范圍內(nèi)的字符和增補(bǔ)字符。BMP范圍內(nèi)的字符編碼和utf8字符集中的編碼是完全相同的,長(zhǎng)度也是完全一樣的,所以u(píng)tf8mb4字符集可以兼容utf8字符集。

  • GB2312是GBK的子集,GBK是GB18030的子集。

  • big5支持繁體中文

轉(zhuǎn)化過程

以下模擬的是將latin1字符集的數(shù)據(jù)庫(kù)修改成GBK的過程  。其他字符集的轉(zhuǎn)換過程類似。需要注意的是要轉(zhuǎn)換的目標(biāo)字符集一定是源字符集的超級(jí)或者目標(biāo)字符集的范圍包含源字符集的范圍。

如何正確更換MySQL數(shù)據(jù)庫(kù)字符集

1. 導(dǎo)表結(jié)構(gòu)

mysqldump -uroot -p --default-character-set=gbk -d databasename >createtb.sql

其中--default-character-set=gbk表示設(shè)置以什么字符集連接,-d表示只導(dǎo)出表結(jié)構(gòu),不導(dǎo)出數(shù)據(jù)。

2. 手工修改createtb.sql中表結(jié)構(gòu)定義中的字符集為新的字符集。

3. 確保記錄不再更新,導(dǎo)出所有記錄

mysqldump -root -p --quick --no-create-info --extended-insert --default-character-set=latin1 databasename>data.sql
  • quick:該選項(xiàng)用于轉(zhuǎn)儲(chǔ)大的表。它強(qiáng)制mysqldump從服務(wù)器一次一行地檢索表中的行而不是所有的行,并在輸出前將它緩沖到內(nèi)存中。

  • extended-insert:使用包括幾個(gè)values列表的多行insert語法。這樣使轉(zhuǎn)儲(chǔ)文件更小,重載文件時(shí)可以加速插入。

  • no-create-info:不導(dǎo)出每個(gè)轉(zhuǎn)儲(chǔ)表的create table語句。

  • default-character-set=latin1:按照原有的字符集導(dǎo)出所有數(shù)據(jù)。這樣導(dǎo)出的文件中,所有中文都是可見的,不會(huì)保存成亂碼。

4. 打開data.sql,將set names latin1修改成set names bgk.

5. 使用新的字符集創(chuàng)建新的數(shù)據(jù)庫(kù)。

create database databasename default charset bgk;

6. 創(chuàng)建表,執(zhí)行createtab.sql

mysql -root -p databasename 

7. 導(dǎo)入數(shù)據(jù),執(zhí)行data.sql

mysql -root -p databasename 

總結(jié)

新的字符集一定要是原字符集的超集,不然轉(zhuǎn)化之后,數(shù)據(jù)會(huì)出現(xiàn)亂碼。常見字符集轉(zhuǎn)換如下:

如何正確更換MySQL數(shù)據(jù)庫(kù)字符集

關(guān)于如何正確更換MySQL數(shù)據(jù)庫(kù)字符集就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。


新聞名稱:如何正確更換MySQL數(shù)據(jù)庫(kù)字符集
標(biāo)題URL:http://weahome.cn/article/jhoico.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部