日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

mysql编码转换工具_mysql编码转换搞定

發布時間:2024/9/27 193 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql编码转换工具_mysql编码转换搞定 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

按照下面做法,終于成功了!慶祝,紀念......

背景:某個系統的mysql數據庫dnname采用默認的latin1字符集,系統升級需要將所有數據轉換成utf-8格式,目標數據庫為newdbname(建庫時使用utf8)

方法一:

步驟一 命令行執行:mysqldump --opt -hlocalhost -uroot -p*** --default-character-set=lantin1 dbname >?/usr/local/dbname.sql

步驟二將?dbname.sql文件中的create table語句的CHARSET=latin1改為CHARSET=utf8

步驟三在dbname.sql文件中的insert語句之前加一條'set names utf8;'

步驟四將dbname.sql轉碼為utf-8格式,建議使用UltraEditor,可以直接使用該編輯器的'轉換->ASCII到UTF-8(Unicode編輯)',或者將文件另存為UTF-8(無BOM)格式

步驟五命令行執行:mysql -hlocalhost -uroot -p*** --default-character-set=utf8 new_dbname < /usr/local/dbname.sql

總結:這種方法有個致命之處就是當數據中有大量中文字符和其他特殊符號字符時,很有可能導致在[步驟五]時報錯導致無法正常導入數據,如果數據庫比較大可以分別對每張表執行上述步驟

方法二(推薦大家使用):

為了解決第一種方法中總結時說到的問題,在網上苦苦查找了一天資料才東拼西湊的搞出一個比較穩妥的解決方法

步驟一將待導出的數據表的表結構導出(可以用Phpmyadmin、mysqldump等,很簡單就不說了),然后將導出的create table語句的CHARSET=latin1改為CHARSET=utf8,在目標庫newdbname中執行該create table語句把表結構建好,接下來開始導出-導入數據。命令:

./mysqldump-d?DB_Dig>/usr/local/tmp/tables.sql

步驟二 命令行:進入mysql命令行下,mysql -hlocalhost -uroot -p*** dbname

步驟三執行SQL select * from?tbname into outfile '/usr/local/tbname.sql';

步驟四?將tbname.sql轉碼為utf-8格式,建議使用UltraEditor,可以直接使用該編輯器的'轉換->ASCII到UTF-8(Unicode編輯)',或者將文件另存為UTF-8(無BOM)格式

步驟五 在mysql命令行下執行語句 set character_set_database=utf8;? 注:設置mysql的環境變量,這樣mysql在下一步讀取sql文件時將以utf8的形式去解釋該文件內容

步驟六 在mysql命令行下執行語句 load data infile 'tbname.sql' into table newdbname.tbname;

注意:千萬不要忘了第四步

采用第二種方法,所有數據均正常導入,且格式轉換成功沒有亂碼。

參考:http://blog.csdn.net/guoguo1980/archive/2008/01/28/2070701.aspx

--------------------

WE準高手

posted on 2008-06-11 16:54 大衛 閱讀(8851) 評論(8) ?編輯 ?收藏 所屬分類: 數據庫

總結

以上是生活随笔為你收集整理的mysql编码转换工具_mysql编码转换搞定的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。