程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 已用數據表的Mysql字符集修改

已用數據表的Mysql字符集修改

編輯:MySQL綜合教程

Mysql字符集修改應該如何實現呢?下面就為您詳細介紹已用數據表的Mysql字符集修改方法,希望對您學習Mysql字符集方面能有所啟迪。

環境:在應用開始階段沒有正確的設置字符集,在運行一段時間以後才發現存在不能滿足需求需要調整,又不想丟棄這段時間的數據,那麼就需要進行字符集的修改。字符集的修改不能直接通過"alter database character set *** " 或者 "alter table tablename character set *** "命令進行,這兩個命令都沒有更新已有記錄的字符集,而只是對新創建的表或者記錄生效。

那麼已有記錄的字符集調整,需要怎麼操作呢?
以下模擬的是將latin1字符集的數據庫修改成GBK字符集的數據庫的過程:
(1) 導出表結構
mysqldump -uroot -p --default-character-set=gbk -d databasesename > createdb.sql
其中--default-character-set=gbk表示設置以什麼字符集連接,-d表示只導出表結構,不導出數據
(2) 手工修改createdb.sql中表結構定義中的字符集為新的字符集
(3) 確保記錄不再更新,導出所有記錄
mysqldump -uroot -p --quick --no-create-info --extended-insert --default-character-set=latin1 databasename > data.sql
--quick:該選項用於轉儲大的表。它強制Mysqldump從服務器一次一行的檢索表中的行,而不是檢索所有的行,兵輸出前將它緩存在內存中
--extended-insert:使用包括幾個values列表的多行Insert語法,這樣使轉儲文件更小,重載文件更快
--no-create-info:不屑重新創建每個轉儲表的create table語句
--default-character-set=latin1:按照原有的字符集導出所有數據,這樣導出的文件中,所有中文都是可見的,不會保存成亂碼
(4) 打開data.sql,將SET NAMES latin1 修改成SET NAMES gbk
(5) 使用新的字符集創建新的數據庫
create database newdatabasename default charset gbk;
(6) 創建表,執行createdb.sql
mysql -uroot -p newdatabasesname < createdb.sql
(7) 導入數據,執行data.sql
mysql -uroot -p newdatabasename < data.sql

MySQL設置當前時間為默認值的方法

MySQL大表備份的簡單方法

多個MySQL表結果集組合

MySQL分表處理的實現方法

MySQL復制表數據到新表的方法
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved