web-dev-qa-db-ja.com

MDB(Access)ファイルをMySQL(またはプレーンなSQLファイル)に変換するにはどうすればよいですか?

Microsoft AccessデータベースからSQLコマンドのダンプを作成することは可能ですか?このMDBファイルをインポート用にMySQLデータベースに変換して、CSVステップを実行する必要がないようにしたいと思います。

MSSQLダンプファイルでさえも実行可能なSQLコマンドが含まれていると予想しますが、MSSQLについては何も知りません。教えてください。

71
Bryan Field

Mdbをmysqlに変換します(mysqlまたはmysqlダンプへの直接転送)?

MySQLへのアクセス というソフトウェアを試してください。

MySQLへのアクセスは、Microsoft AccessデータベースをMySQLに変換する小さなプログラムです。

  • ウィザードインターフェイス。
  • あるサーバーから別のサーバーにデータを直接転送します。
  • ダンプファイルを作成します。
  • 転送するテーブルを選択します。
  • 転送するフィールドを選択します。
  • パスワードで保護されたデータベースを転送します。
  • 共有セキュリティとユーザーレベルのセキュリティの両方をサポートします。
  • インデックスのオプションの転送。
  • レコードのオプションの転送。
  • フィールド定義のデフォルト値のオプションの転送。
  • 自動番号フィールドタイプを識別して転送します。
  • コマンドラインインターフェース。
  • 簡単なインストール、アンインストール、アップグレード。

スクリーンショット付きの段階的なチュートリアルについては、前述のリンクを参照してください。

71
Teson

MdbtoolsがインストールされたLinuxボックスにアクセスできる場合は、次のBashシェルスクリプトを使用できます(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

すべてのテーブルとすべてのデータをインポートします。

41
Nicolay77

Nicolay77によってスクリプトを変更して、データベースを標準出力(unixスクリプトの通常の方法)に出力して、データをテキストファイルに出力したり、任意のプログラムにパイプしたりできるようにしました。結果のスクリプトは少しシンプルで、うまく機能します。

いくつかの例:

./to_mysql.sh database.mdb > data.sql

./to_mysql.sh database.mdb | mysql destination-db -u user -p

変更されたスクリプトは次のとおりです(to_mysql.shに保存)。

#!/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
27
mikkom

無料のデータベースツールテーブルRELATIONSHIPSをエクスポートしない、これを使用できます関係

正常に動作し、すべての関係をMySQLにエクスポートします。

enter image description here

9

Data Wizard for MySQL を試してください。これは、ADO互換のソース(MS Accessなど)の構造とデータをMySQLデータベースに変換するためのツールです。 接続文字列の簡単なガイド を参照して、MS Accessファイルへの接続文字列を作成してください。

6
Tihonov Eugene

OSXユーザーは、Nicolay77またはmikkomを使用して、mdbtoolsユーティリティ。 Homebrewでインストールできます。 homebrewをインストールしてから

$ homebrew install mdbtools

次に、みんなが説明したスクリプトの1つを作成して使用します。 mikkomのファイルを使用し、すべてのmdbファイルをsqlに変換しました。

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

(btwには複数のテーブルが含まれています)

6
Egor Guriyanov

この正確な目的のために ESF Database Convert を何度も使用しました。 DTSは、通常あまりにもゆるいものでした。また、MySQLページの推奨事項はひどく古くなっていました。

5
Michael Pryor

Microsoftの データ変換サービス を試してください

5
user715990

SQLYog Ultimateを使用してmdbファイルからデータをインポートしましたが、非常に簡単なプロセスでした。

これらのサポートツールをインストールする必要がある場合があります。

MS Accessデータベースエンジン

以下のSQLYog Ultimateをダウンロードしてください

SQLYogを選択、試用版を使用できます

3
Harsha

私はMacを使用して、これを変換します。

  1. ACCDB MDB Explorerをダウンロード http://accdb-mdb-Explorer.en.softonic.com/mac
  2. MDBファイルを開きます
  3. SQLとしてエクスポート
  4. MySQL Workbenchを使用してMySQLにインポートします。
2
Dilip Rajkumar

このmacツール MDB/ACCDB Viewer は、私のニーズに適しています。無料試用版では、すべてが必要なことを証明し、すべての行の半分をエクスポートしました。 db/tables全体をエクスポートするには、完全版が必要でした。

2

変換する.mdbファイルのプライバシーにあまり関心がない場合は、このサイトで2つの15年前の.mdb Accessデータベースを復元できることに注意してください(ASPわずか2分でウェブを支配しましたか? http://www.mdbopener.com/

データベースはExcelファイルに変換され、テーブルごとに1つのシートが使用されました。ちょうど私が必要なもの。私の(非常に)古いデータを回復するのにこれ以上速くなることはできませんでした...

IDは各テーブルに保持されているため、CSV形式に保存した後、これをmysqlに再度変換するのは簡単でした-わずか数分で。

0
barakadam

https://www.rebasedata.com/convert-mdb-to-mysql-online を試してみたところ、かなりうまくいきました。

登録不要のオンラインソリューション。

0
SandroMarques