溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

mysql4.1數(shù)據(jù)轉(zhuǎn)換的實(shí)現(xiàn)方法

發(fā)布時(shí)間:2021-07-08 17:24:05 來(lái)源:億速云 閱讀:142 作者:chen 欄目:MySQL數(shù)據(jù)庫(kù)

這篇文章主要講解了“mysql4.1數(shù)據(jù)轉(zhuǎn)換的實(shí)現(xiàn)方法”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“mysql4.1數(shù)據(jù)轉(zhuǎn)換的實(shí)現(xiàn)方法”吧!

mysql 4.1增加了編碼的支持,所以在轉(zhuǎn)換舊數(shù)據(jù)的時(shí)候稍微麻煩一些,但只要注意以下幾點(diǎn),基本沒(méi)問(wèn)題的:

1、轉(zhuǎn)換之前一定要先把原有數(shù)據(jù)dump出來(lái),一般原有數(shù)據(jù)都是gb2312編碼吧,dump命令如下:

mysqldump -u -p database –add-drop-table –extended-insert

–add-drop-table是為了導(dǎo)入的時(shí)候省去建表環(huán)節(jié),–extended-insert是為了防止在導(dǎo)入的時(shí)候一個(gè)sql語(yǔ)句過(guò)大的情況,想想你的上千條記錄寫(xiě)在一條sql語(yǔ)句中是多么的恐怖。

這里假定原有數(shù)據(jù)庫(kù)是gb2312編碼,需要轉(zhuǎn)換為utf8編碼,其它編碼之間的轉(zhuǎn)換類似。

2、修改dump出來(lái)的sql文件,用Emeditor或iconv把文件的編碼轉(zhuǎn)換為utf-8,注意最好不要那個(gè)什么“Unicode Signature(BOM)”,因?yàn)閙ysql.exe不認(rèn)的。再把文件中的gbk_bin替換為utf8_general_ci,把gbk替換為 utf8,然后在文件最前面加上

set names utf8;

帶上BOM,mysql不識(shí)別的錯(cuò)誤大體如下:

ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the ma

nual that corresponds to your MySQL server version for the right syntax to use n

ear ‘???

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */’ at line 1

3、重新建mysql庫(kù),然后導(dǎo)入備份的sql語(yǔ)句,導(dǎo)入命令如下:

mysql -u -p database < dumpdata.sql

4、如果是以前導(dǎo)出的文件,導(dǎo)入的時(shí)候遇到錯(cuò)誤:

Got a packet bigger than ‘max_allowed_packet’ bytes

or

ERROR 1153 (08S01) at line 616: Got a packet bigger than ‘max_allowed_packet’ by

tes

就需要修改mysql的最大允許包大小了,編輯my.ini,在[mysqld]部分(不在這部分沒(méi)用)添加一句:

set-variable=max_allowed_packet=10485760

重啟mysql服務(wù)就可以了,我這里設(shè)置的是大約10M。

到這里數(shù)據(jù)導(dǎo)入基本就完成了,接下來(lái)就是根據(jù)各個(gè)應(yīng)用的不同來(lái)調(diào)整了,一般有的系統(tǒng)已經(jīng)支持了,但還有的不支持,不過(guò)調(diào)整方法大概分以下幾類:

1、在數(shù)據(jù)庫(kù)連接后面加上

mysql_connect(….

mysql_query(”set names ‘utf8′”);

這種情況最多,比如Brim什么的。

2、將語(yǔ)言文件或模板文件的編碼設(shè)置為utf-8,注意是直接把文件編碼轉(zhuǎn)換了就可以,內(nèi)容不用管,這樣的有phpwind, mantis。使用工具可以是iconv,在這里可以下載。

iconv -f gb2312 -t utf-8 gb2312.html > utf-8.html

3、修改模板文件,設(shè)置HTML中的

原先是gb2312編碼的系統(tǒng)多半需要改這個(gè)。

感謝各位的閱讀,以上就是“mysql4.1數(shù)據(jù)轉(zhuǎn)換的實(shí)現(xiàn)方法”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)mysql4.1數(shù)據(jù)轉(zhuǎn)換的實(shí)現(xiàn)方法這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI