【6】快速進(jìn)行Access數(shù)據(jù)庫(kù)轉(zhuǎn)成mysql數(shù)據(jù)庫(kù)及mysql導(dǎo)入中文數(shù)據(jù)亂碼問(wèn)題的解決方案
一、Access-to-mysql pro
Navicat for MySQL數(shù)據(jù)庫(kù)視圖管理軟件,可以直接將Access、Excel、TXT數(shù)據(jù)導(dǎo)入到MYSQ中。
Access-to-mysql pro是一個(gè)可以直接將Access文件導(dǎo)入mysql中的軟件,其基本用法參見(jiàn)了某人的某文如下:

這個(gè)要用到 Access-to-MySQL Pro 這個(gè)軟件。網(wǎng)上有下載,并且有破解版的。
問(wèn)題是如果直接用它來(lái)把ACCESS文件導(dǎo)入MYSQL會(huì)出現(xiàn)亂碼。所以我試下以下方法,雖然麻煩點(diǎn),但是還可是可行。
5.1 用Access-to-MySQL Pro來(lái)把數(shù)據(jù)庫(kù)導(dǎo)出為*.sql 文件。
A) 運(yùn)行Access-to-MySQL Pro的時(shí)候選ADVANCE MODE,下一步;
B) 選擇STORE into dump file, 就是保存為*.sql文件,下一步;
C) 選擇目標(biāo)MYSQL的版本,選默認(rèn)值,下一步;
D) 這下要選MS ACCESS USER-LEVElL SECURITY FILE,這個(gè)文件一般在你的OFFICE安裝目錄下。我的是在G:\Program Files\Microsoft Office\Office\SYSTEM.MDW , 用戶(hù)名填 ADMIN , 下一步;
E) 選擇你要轉(zhuǎn)換的ACCESS MDB文件以及保存路徑,點(diǎn)下一步,就可以生成.sql 文件了。我生成的是C:\test.sql。
5.2 把剛才生成的文件轉(zhuǎn)成UTF-8格式。 用記事本打開(kāi)這個(gè)文件,選另存為,編碼選UTF-8,覆蓋保存就OK了。
5.3 在MYSQL導(dǎo)入該文件
我不在phpMyAdmin導(dǎo)入文件是因?yàn)閜hpMyAdmin默認(rèn)只能導(dǎo)入17M的文件。懶得改相應(yīng)的設(shè)置,MYSQL命令行方便些。
進(jìn)入DOS窗口,轉(zhuǎn)到MYSQL安裝目錄的BIN子目錄下。我這里是G:\Program Files\xapp\xampp\mysql\bin.
A) mysql -uroot -p
password:這里輸入密碼
B) CREATE DATABASE hewang;
C) use hewang;
E) source c:\test.sql;
有可能會(huì)出現(xiàn)錯(cuò)誤提示音,不管他,等它再次出現(xiàn)提示符的時(shí)候,導(dǎo)入成功。我用這種方法導(dǎo)入一個(gè)50M的文件沒(méi)有問(wèn)題,只是提示音響了十分鐘。
可以在phpMyAdmin下查看數(shù)據(jù)是否正確,如果沒(méi)有亂碼就OK了。
二、關(guān)于數(shù)據(jù)導(dǎo)入mysql時(shí)的亂碼的解決方案
當(dāng)然上文是基于php下的亂碼解決方案,我在MySQL Command Line Client下使用>source c:\test.sql時(shí)導(dǎo)入有中文字串的字段值的時(shí)候,從SQL Manager中查看記錄都是亂碼。我的解決方案如下:
由Access-to-mysql生成的sql文件中有類(lèi)似如下文本內(nèi)容:
CREATE TABLE `userinfo` (
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(50),
'pwd' VARCHAR(20),
PRIMARY KEY (`id`)
) TYPE=InnoDB;
注意紅色的文本,修改成如下:
CREATE TABLE `userinfo` (
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(50),
'pwd' VARCHAR(20),
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
接下來(lái),還要在文件中的LOCK TABLES `userinfo` WRITE;后面,INSERT INTO `userinfo`....文本的前面增加如下一行,如下:
LOCK TABLES `userinfo` WRITE;
SET NAMES 'gb2312';
INSERT INTO `userinfo` VALUES
這樣修改這個(gè)文件以后,還要將它以ANSI編碼重新保存。這樣操作以后,在MySQL Command Line Client中使用>source test.sql后導(dǎo)入mysql數(shù)據(jù)的字串都是正確的了。并且,所有文本相關(guān)的編碼也都是gb2312的編碼。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。