如何將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安裝它。 只需安裝好自製軟件然後再去

$ homebrew install mdbtools

然後創建一個由這些人描述的腳本並使用它。 我使用了mikkom的一個,將我的所有mdb文件轉換為sql。

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

(哪個btw包含多個表)










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

數據庫在Excel文件中轉換,每個表一張。 正是我需要的。 無法更快地恢復我的(非常)舊數據......

ID保存在每個表中,只需將其再次轉換為mysql(將其保存為CSV格式)之後就好了 - 再過幾分鐘。







Links