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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql数据库latin1转utf8_三种转换Mysql数据库数据编码的窍门-latin1转utf8

發(fā)布時間:2024/2/28 数据库 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql数据库latin1转utf8_三种转换Mysql数据库数据编码的窍门-latin1转utf8 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

背景:某個操作系統(tǒng)的Mysql數(shù)據(jù)庫數(shù)據(jù)庫Databnsednname采用默認的latin1字符集,操作系統(tǒng)升級需求將所有數(shù)據(jù)轉換成utf-8各式,目的數(shù)據(jù)庫Databnse為newdbname(建庫時應用utf8)

方法一:

步驟一 命令行執(zhí)行:Mysql數(shù)據(jù)庫dump –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)各式

步驟五 命令行執(zhí)行:Mysql數(shù)據(jù)庫 -hlocalhost -uroot -p*** –default-character-set=utf8 new_dbname < /usr/local/dbname.sql

總結:這種竅門有個致命之處就當數(shù)據(jù)中有大量漢文字符和更多有聯(lián)系特殊符號字符時,很有估計導致在 [步驟五]時報錯導致無法正常導入數(shù)據(jù),假如數(shù)據(jù)庫Databnse較量大能夠分別對每張表執(zhí)行上述步驟

方法二(推薦大部份人應用):

為 了解決NO·1種竅門中總結時說到的疑難問題,在網(wǎng)上苦苦查找了一天資源才東拼西湊的搞出唯一較量穩(wěn)妥的解決竅門

步驟一將待導出的數(shù)據(jù)表的表框架導出(能夠用Phpmyadmin、Mysql數(shù)據(jù)庫dump等,很簡單就不說了),然后將導出的create table語句的CHARSET=latin1改為CHARSET=utf8,在目的庫newdbname中執(zhí)行該create table語句把表框架建好,接下來開端導出-導入數(shù)據(jù)

步驟二 命令行:進入Mysql數(shù)據(jù)庫命令行下,Mysql數(shù)據(jù)庫 -hlocalhost -uroot -p*** dbname

步驟三 執(zhí)行SQL select * from tbname into outfile ‘/usr/local/tbname.sql’;

步驟四將tbname.sql轉碼為utf-8各式,意見應用UltraEditor,能夠直接應用該編輯器的’轉換->ASCII到UTF- 8(Unicode編輯)’,或者將文檔另存為UTF-8(無BOM)各式

步驟五 在Mysql數(shù)據(jù)庫命令行下執(zhí)行語句 set character_set_database=utf8; 注:設置Mysql數(shù)據(jù)庫的環(huán)境變量,那樣Mysql數(shù)據(jù)庫在下一步讀取sql文檔時將以utf8的形式去解釋該文檔內(nèi)容

步驟六 在Mysql數(shù)據(jù)庫命令行下執(zhí)行語句 load data infile ‘tbname.sql’ into table newdbname.tbname;

留意:千萬不能忘了第四步

采用第二種竅門,所有數(shù)據(jù)均正常導入,且各式轉換勝利沒有亂碼

方法三:

別人的今天問起,隨手轉了一下,很簡單,這里截圖說明一下

用phpmyadmin導入庫test中后發(fā)現(xiàn),這個庫中有UTF8和latin1兩種編碼,如下圖

先把test備份為test1庫,在WIN下操作的話就是把:路徑\MySQL\data下的test目錄備份一下,改名為test1目錄

在phpmyadmin中把所有為UTF8的表刪除,在命令行中運行

D:\PHPServer\MySQL\bin>mysqldump -uroot -p –quick –compatible=mysql40 –default-character-set=latin1 –extended-insert=FALSE?test > /root/test.sql

說明一下D:\PHPServer\MySQL\bin是我的安裝目錄,test為數(shù)據(jù)庫,d:/test.sql為生成的數(shù)據(jù)文件,程序會提示你輸入root的用戶密碼,輸入后,等幾分鐘,test.sql就生成好了

通過phpmyadmin建立一個新庫,庫名:test2 ,采集字符集設定為utf8-general-li

再將剛才生成sql文件導入新數(shù)據(jù)庫

D:\PHPServer\MySQL\bin>mysql -uroot -p –default-character-set=utf8?test2 < /root/test.sql

輸入root密碼,等幾分鐘,zxs.sql就導入成功了,到這還沒完,因為這里只是把latin1編碼的轉換為utf8了

最后,停止mysql,把test2目錄下的所有文件覆蓋到我們剛剛備份的test1目錄下,這樣,test1目錄就是我們要得到了轉換好了的UTF8數(shù)據(jù)庫了,OK,收工

當然,方法很簡單,就是把latin1編碼的表單獨分離出來轉為UTF8后再蓋原來的庫,這樣多種編碼也都可以完美的轉換,這種情況也非常常見,換主機,升mysql版本等都會出現(xiàn)這種情況的。

覺得文章有用?立即:

和朋友一起 共學習 共進步!

猜想失敗,您看看下面的文章有用嗎?

總結

以上是生活随笔為你收集整理的mysql数据库latin1转utf8_三种转换Mysql数据库数据编码的窍门-latin1转utf8的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。