How can I convert an MDB (Access) file to MySQL (or plain SQL file)?

后端 未结 4 647
后悔当初
后悔当初 2020-12-07 07:47

Is it possible to create a Dump of SQL commands from a Microsoft Access database? I hope to convert this MDB file into a MySQL database for importing so I don\'t have to go

相关标签:
4条回答
  • 2020-12-07 08:21

    If you have access to a linux box with mdbtools installed, you can use this Bash shell script (save as 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
    

    To invoke it simply call it like this:

    ./mdbconvert.sh accessfile.mdb mysqldatabasename
    

    It will import all tables and all data.

    0 讨论(0)
  • 2020-12-07 08:27

    I modified the script by Nicolay77 to output the database to stdout (the usual way of unix scripts) so that I could output the data to text file or pipe it to any program I want. The resulting script is a bit simpler and works well.

    Some examples:

    ./mdb_to_mysql.sh database.mdb > data.sql
    
    ./mdb_to_mysql.sh database.mdb | mysql destination-db -u user -p
    

    Here is the modified script (save to mdb_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
    
    0 讨论(0)
  • 2020-12-07 08:30

    You want to convert mdb to mysql (direct transfer to mysql or mysql dump)?

    Try a software called Access to MySQL.

    Access to MySQL is a small program that will convert Microsoft Access Databases to MySQL.

    • Wizard interface.
    • Transfer data directly from one server to another.
    • Create a dump file.
    • Select tables to transfer.
    • Select fields to transfer.
    • Transfer password protected databases.
    • Supports both shared security and user-level security.
    • Optional transfer of indexes.
    • Optional transfer of records.
    • Optional transfer of default values in field definitions.
    • Identifies and transfers auto number field types.
    • Command line interface.
    • Easy install, uninstall and upgrade.

    See the aforementioned link for a step-by-step tutorial with screenshots.

    0 讨论(0)
  • 2020-12-07 08:35

    OSX users can follow by Nicolay77 or mikkom that uses the mdbtools utility. You can install it via Homebrew. Just have your homebrew installed and then go

    $ homebrew install mdbtools
    

    Then create one of the scripts described by the guys and use it. I've used mikkom's one, converted all my mdb files into sql.

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

    (which btw contains more than 1 table)

    0 讨论(0)
提交回复
热议问题