如何將MDB(Access)文件轉換為MySQL(或純SQL文件)?


Answers

如果您可以訪問安裝有mdbtools的Linux機器,則可以使用此Bash shell腳本(另存為mdbconvert.sh):

#!/bin/bash

TABLES=$(mdb-tables -1 $1)

MUSER="root"
MPASS="yourpassword"
MDB="$2"

MYSQL=$(which mysql)

for t in $TABLES
do
    $MYSQL -u $MUSER -p$MPASS $MDB -e "DROP TABLE IF EXISTS $t"
done

mdb-schema $1 mysql | $MYSQL -u $MUSER -p$MPASS $MDB

for t in $TABLES
do
    mdb-export -D '%Y-%m-%d %H:%M:%S' -I mysql $1 $t | $MYSQL -u $MUSER -p$MPASS $MDB
done

調用它只需要像這樣調用它:

./mdbconvert.sh accessfile.mdb mysqldatabasename

它將導入所有表和所有數據。

Question

是否有可能從Microsoft Access數據庫創建轉儲的SQL命令? 我希望將這個MDB文件轉換成MySQL數據庫導入,所以我不必經過CSV步驟。

我希望即使MSSQL轉儲文件仍然包含可行的SQL命令,但我對MSSQL一無所知,請讓我知道。










OSX用戶可以按照使用mdbtools實用程序的Nicolay77mikkom進行操作。 你可以通過自製軟件安裝。 只要安裝你的自製軟件,然後去

$ homebrew install mdbtools

然後創建一個由傢伙描述的腳本並使用它。 我用mikkom的一個,把我所有的mdb文件轉換成sql。

$ ./to_mysql.sh myfile.mdb > myfile.sql

(這btw包含多個表)







如果你不太關心你要轉換的.mdb文件的隱私,請知道這個網站允許我恢復兩個15歲的.mdb Access數據庫(還記得以前ASP統治網頁的時候嗎?)在短短的兩分鐘內: http : //www.mdbopener.com/

數據庫轉換為Excel文件,每個表格一張。 正是我所需要的。 不能更快地恢復我的(非常)舊的數據...

這些ID保存在每個表中,就像任何事情一樣簡單,再次轉換成mysql(在保存為CSV格式之後) - 再過幾分鐘。