Ist es möglich, einen Dump von SQL-Befehlen aus einer Microsoft Access-Datenbank zu erstellen? Ich hoffe, diese MDB-Datei zum Importieren in eine MySQL-Datenbank konvertieren zu können, damit ich den CSV-Schritt nicht durchlaufen muss.
Ich würde erwarten, dass sogar eine MSSQL-Dump-Datei noch funktionsfähige SQL-Befehle enthält, aber ich weiß nichts über MSSQL, bitte lassen Sie es mich wissen.
Wenn Sie Zugriff auf eine Linux-Box mit installierten mdbtools haben, können Sie dieses Bash-Shell-Skript verwenden (speichern Sie es als 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
Um es aufzurufen, nennen Sie es einfach so:
Es werden alle Tabellen und alle Daten importiert.
quelle
AWK
undGREP
vars entfernen und ich habe die Optionen hinzugefügt-b strip -H
,mdb-export
weil ich einige seltsame OLE-Objekte in mdb hatte und weil die Header zuvor geladen wurden. Ich denke, in einigen Fällen-b octal
würde es auch funktionieren, aber ich hatte Probleme mit den Binärdaten beim Laden in MySQL.IFS=$(echo -en "\n\b")
nach dem Schebang hinzufügen .\%
und\\%
mache es nicht für mich ...{ echo ‘set autocommit=0;’; mdb-export ... ;echo ‘commit;’ } | mysql
kann schneller seinIch habe das Skript von Nicolay77 so geändert, dass die Datenbank in stdout ausgegeben wird (die übliche Art von Unix-Skripten), sodass ich die Daten in eine Textdatei ausgeben oder an ein beliebiges Programm weiterleiten kann. Das resultierende Skript ist etwas einfacher und funktioniert gut.
Einige Beispiele:
Hier ist das geänderte Skript (in mdb_to_mysql.sh speichern)
#!/bin/bash TABLES=$(mdb-tables -1 $1) for t in $TABLES do echo "DROP TABLE IF EXISTS $t;" done mdb-schema $1 mysql for t in $TABLES do mdb-export -D '%Y-%m-%d %H:%M:%S' -I mysql $1 $t done
quelle
OSX - Benutzer können durch folgen Nicolay77 oder mikkom , die das verwendet mdbtools Dienstprogramm. Sie können es über Homebrew installieren . Lassen Sie einfach Ihr Homebrew installieren und gehen Sie dann
$ homebrew install mdbtools
Erstellen Sie dann eines der von den Jungs beschriebenen Skripte und verwenden Sie es. Ich habe die von mikkom verwendet und alle meine MDB-Dateien in SQL konvertiert.
(welches übrigens mehr als 1 Tabelle enthält)
quelle
brew install mdbtools