mysql字元集修改

來源:互聯網
上載者:User

標籤:mysql字元集修改

本實驗的環境:

linux系統:

cat /etc/redhat-release 

CentOS release 6.5 (Final)

資料庫環境:

select version();

+------------+

| version() |

+------------+

| 5.5.32-log |

+------------+

類比的是將latin1字元集資料庫修改UTF-8字元集的資料庫的過程

建立latin1字元集的資料庫:

mysql> create database anguo default character set = latin1 default collate = latin1_swedish_ci;

Query OK, 1 row affected (0.00 sec)

建立latin1字元集的表:

create table student(id int(4) not null auto_increment,name varchar(20),primary key(id)) default character set = latin1 default collate = latin1_swedish_ci;

set names latin1;

insert into student(name) values(‘zhang‘),(‘he‘),(‘hou‘),(‘liu‘),(‘安果‘),(‘張三‘);

修改步驟:

1)匯出表結構

mysqldump -uroot -pmysql -S /data/3306/mysql.sock --default-character=utf8 -d anguo>/data/backup/createanguo.sql

其中 –default-character=utf8表示設定以什麼字元集串連,-d表示只匯出表結構不匯出資料

2)手工修改createoldboy.sql中表結構定義的字元集為新的字元集

sed -i ‘s/latin1/utf8/g‘ /data/backup/createanguo.sql

注意:批量替換的時候確保相關欄位裡面沒有latin1相關的字元。

3)確保記錄不再更新,匯出所有記錄

mysqldump -uroot -pmysql -S /data/3306/mysql.sock --quick --no-create-info --extended-insert --default-character-set=latin1 anguo >/data/backup/dataanguo.sql

--quick:該選項用於轉儲大的表,它前置mysqldump從伺服器一次一行地檢索表中的行而不是檢索所有行,並在輸出前將它緩衝到記憶體中

--extended-insert: 使用包括幾個values列表的多行insert文法,這樣使轉儲檔案更小,重載檔案時可以快速插入

--no-create-info:不到出每個轉儲表的create table語句

--default-character-set=latin1: 按照原有的字元集匯出所有資料,這樣匯出的檔案中,所有中文都是可見的,不會儲存成亂碼

4)開啟dataoldboy.sql,將set names latin1修改成set names utf8

sed -i ‘s/latin1/utf8/g‘ /data/backup/dataanguo.sql

注意:批量替換的時候確保相關欄位裡面沒有latin1相關的字元。

5)使用新的字元集建立資料庫

create database anguo default character set = utf8 default collate = utf8_general_ci;     

6)建立表,執行createoldboy.sql

mysql -uroot -pmysql -S /data/3306/mysql.sock anguo < /data/backup/createanguo.sql

7)匯入資料,執行初始化

mysql -uroot -pmysql -S /data/3306/mysql.sock anguo < /data/backup/dataanguo.sql

註:部分內容參考深入淺出MySQL資料庫開發、最佳化與管理維護

本文出自 “HELLO 小孩” 部落格,請務必保留此出處http://xueanguo.blog.51cto.com/8618805/1773716

mysql字元集修改

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.