2009年7月22日 星期三

如何將access資料庫轉成MySOL

這是我最近一直非常困惑的問題。

因為手上已經有一份建了很多資料的access資料庫,因為想要把它弄成網頁版,稍研究了一下,決定要把它改成MySOL的格式,然後用PHP來操作在網頁上呈現。(大約是這樣的關係吧..)

上網查了很久,試了很多轉檔的軟體,但都是失敗了。不過皇天不負苦心人阿,我終於成功了。\(^ 0^)/

所以在此將我的心得分享一下。

我使用的是

# Apache Web Server Version 2.2.4
# PHP Script Language Version 5.2.3
# MySQL Database Version 5.0.45
# phpMyAdmin Database Manager Version 2.10.2

和 access2003

最順利將access資料庫匯入mysql的軟體是acc2sql。操作很容易,照著做就是了。不過麻煩的是,怎麼找都只有demo版,而demo版每個資料表只能匯入5筆資料...Orz...。不過會讓資料表的格式都進去就是了。而且中文字的讀取沒有問題。

有試了其他方法,但因為搞不清楚設定,所以總之都是失敗了,只有用acc2sql有成功。

接下來有兩條路可走,
1. 用驢子找acc2sql的正式版!!但是,因為phpMyadmin在匯入資料庫的時候有2mb的限制,如果太大就會失敗,據說是有外掛(?)可以解決,但我試不出來,所以就不多說了。因為我的資料庫已經有9mb了,所以即使找到正式版也還是有不能匯入的問題。
2. 在access裡把每個資料表彙出成csv格式,再用phpMyadmin的匯入功能將資料表匯入已用acc2sql轉檔成功的資料庫裡。

因為資料庫很大,又找不到驢子的關係,雖然我的資料庫裡有很多的資料表,但我還是選用了第二個方法,然後我就成功了(灑花)~~

以下詳敘一下整個流程。另phpMyadmin的使用方法不是本篇重點,所以不多加說明。

1. 首先將資料庫用acc2sql轉檔,檢查每個資料表有無進入及是否正確。
2. 在access裡將資料表匯出成csv檔。

按確定進入。點選左下方的進階,將字碼改為"Unicode (UTF-8)"。

然後按下一步。
在選擇欄位分隔符號的時候要注意選擇的是什麼,預設是以"逗號"分隔。不要包含第一列,因為此列在匯入mysql的時候也會當成資料匯入。

3. 在phpMyadmin中開啟要匯入資料的資料表。清空資料表。再選擇載入。
4. 選取剛匯出的檔案。因為是csv檔,所以下方的載入檔案格式會自動選擇為csv。這邊要特別注意欄位分隔使用字元的地方。因為phpMyadmin裏預設的是";",而access裡預設的是"逗號"(若是用excel,預設的也是","),所以要記得把這個字元改成","。或是在access匯出時,要設成"分號"。

5. 執行!

但可能會有一些問題:
1. 因為欄位使用字元為",所以如果資料中有"存在,就會有問題。

若遇上以上狀況,phpMyadmin會有錯誤訊息,如『CSV 檔案第 2709 行中之欄位總數錯誤.』。這時就只好打開csv檔看看是哪個問題,然後排出後再重新匯入一次嚕。

另要注意,要先有資料表後才能用csv將檔案載入喔,不然就只能用SQL格式載入了。

沒有留言:

張貼留言