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

时间:2011-04-19 20:51:50

标签: mysql sql ms-access import dump

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

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

12 个答案:

答案 0 :(得分:71)

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

尝试使用名为Access to MySQL的软件。

  

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

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

有关屏幕截图的分步教程,请参阅上述链接。

答案 1 :(得分:41)

如果您可以访问安装了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

它将导入所有表格和所有数据。

答案 2 :(得分:26)

我修改了Nicolay77的脚本,将数据库输出到stdout(通常的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

答案 3 :(得分:8)

免费数据库工具不导出表格RELATIONSHIPS 但您可以使用此converting MS Access to MySQL with relationships

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

enter image description here

答案 4 :(得分:6)

试试Data Wizard for MySQL。它是一种用于将结构和数据从任何ADO兼容源(例如MS Access)转换为MySQL数据库的工具。 请参阅a brief guide to connection strings以构建MS Access文件的连接字符串。

答案 5 :(得分:5)

答案 6 :(得分:5)

为了这个目的,我们多次使用ESF Database Convert。 DTS通常太过火热。 MySQL页面上的建议已经过时了。

答案 7 :(得分:3)

我已经使用SQLYog Ultimate从mdb文件导入数据,这是非常简单的过程。

您可能需要安装这些支持工具。

MS Access Database engine

并在

下载SQLYog Ultimate

Pick SQLYog, you can use trial version for this

答案 8 :(得分:2)

我使用Mac我这样做转换;

  1. 下载ACCDB MDB Explorer http://accdb-mdb-explorer.en.softonic.com/mac
  2. 打开MDB文件
  3. 导出为SQL
  4. 使用MySQL Workbench在MySQL中导入。

答案 9 :(得分:2)

这个mac工具MDB / ACCDB Viewer很适合我的需求。免费试用让我证明一切都做了所需,并导出了所有行的一半。需要完整版才能导出整个db / tables。

答案 10 :(得分:0)

如果你不太关心你要转换的.mdb文件的隐私,请知道这个网站允许我恢复两个15年前的.mdb Access数据库(记住ASP统治时的旧时代)网络?)只需两分钟:http://www.mdbopener.com/

数据库在Excel文件中转换,每张表有一张。正是我需要的。恢复我的(非常)旧数据不可能更快......

每个表中都保存了ID,只需将其再次转换为mysql(将其保存为CSV格式)之后就可以了 - 再次,只需几分钟。

答案 11 :(得分:0)

我尝试了https://www.rebasedata.com/convert-mdb-to-mysql-online,效果很好。

无需注册的在线解决方案。