如何将MDB(Access)文件转换为MySQL(或纯SQL文件)?

Bry*_*eld 71 mysql sql import ms-access dump

是否可以从Microsoft Access数据库创建转储SQL命令?我希望将此MDB文件转换为MySQL数据库以进行导入,因此我不必完成CSV步骤.

我甚至希望一个MSSQL转储文件仍然包含可用的SQL命令,但我对MSSQL一无所知,请告诉我.

Tes*_*son 72

你想将mdb转换为mysql(直接转移到mysql或mysql转储)?

试试一款名为Access to MySQL的软件.

访问MySQL是一个小程序,将Microsoft Access数据库转换为MySQL.

  • 向导界面.
  • 将数据直接从一台服务器传输到另一台服
  • 创建转储文件.
  • 选择要传输的表.
  • 选择要传输的字段.
  • 传输密码保护的数据库
  • 支持共享安全性和用户级安全性.
  • 可选的索引传输.
  • 可选的记录转移.
  • 在字段定义中可选地传输默认值.
  • 标识并传输自动编号字段类型.
  • 命令行界面.
  • 易于安装,卸载和升级.

有关屏幕截图,请参阅上述链接以获取分步教程.

  • 它适用于新的.accdb Access格式 (7认同)
  • 如果您有64位操作系统,则需要32位ODBC驱动程序.https://dev.mysql.com/downloads/connector/odbc/ (3认同)
  • 更新:已经削弱了免费版本.搜索和替换适用于较小的迁移,但.. (2认同)

Nic*_*y77 45

如果您可以访问安装了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
Run Code Online (Sandbox Code Playgroud)

要调用它,只需像这样调用它:

./mdbconvert.sh accessfile.mdb mysqldatabasename
Run Code Online (Sandbox Code Playgroud)

它将导入所有表和所有数据.

  • 我正在导入名称中带有空格的表格,这对我不起作用.在shebang之后我不得不添加`IFS = $(echo -en"\n\b")`. (3认同)

mik*_*kom 29

我修改了Nicolay77的脚本,将数据库输出到stdout(通常的unix脚本方式),这样我就可以将数据输出到文本文件或将其传输到我想要的任何程序.生成的脚本更简单,效果更好.

一些例子:

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

./mdb_to_mysql.sh database.mdb | mysql destination-db -u user -p
Run Code Online (Sandbox Code Playgroud)

这是修改后的脚本(保存到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
Run Code Online (Sandbox Code Playgroud)


Iva*_*ari 9

免费数据库工具不会导出表RELATIONSHIPS, 但您可以使用它:将MS Access转换为具有关系的MySQL

工作正常并将所有关系导出到MySQL.

在此输入图像描述


Ego*_*nov 7

OSX用户可以通过遵循Nicolay77mikkom使用该mdbtools效用。您可以通过Homebrew安装它。只需安装自制软件,然后再去

$ homebrew install mdbtools
Run Code Online (Sandbox Code Playgroud)

然后创建家伙描述的脚本之一并使用它。我用过mikkom的,将我所有的mdb文件都转换成sql。

$ ./to_mysql.sh myfile.mdb > myfile.sql
Run Code Online (Sandbox Code Playgroud)

(顺便说一句包含多个表)

  • 较新版本的macOS / Homebrew,命令为“ brew install mdbtools”。 (2认同)

小智 6

试试MySQL数据向导.它是一种用于将结构和数据从任何ADO兼容源(例如MS Access)转换为MySQL数据库的工具.请参阅连接字符串的简要指南,以便为MS Access文件构建连接字符串.


小智 5

尝试微软的数据转换服务


Mic*_*yor 5

为此,我们已多次使用ESF Database Convert。DTS通常太胡扯了。而且MySQL页面上的建议已过时。