Как я могу преобразовать файл MDB (Access) в MySQL (или простой файл SQL)? - PullRequest
71 голосов
/ 20 апреля 2011

Можно ли создать дамп команд SQL из базы данных Microsoft Access?Я надеюсь преобразовать этот файл MDB в базу данных MySQL для импорта, поэтому мне не нужно проходить через шаг CSV.

Я бы ожидал, что даже файл дампа MSSQL все еще будет содержать работоспособные команды SQL, но я знаю,ничего о MSSQL, пожалуйста, дайте мне знать.

Ответы [ 13 ]

71 голосов
/ 20 апреля 2011

Вы хотите конвертировать mdb в mysql (прямой перевод в mysql или mysql dump)?

Попробуйте программное обеспечение под названием Доступ к MySQL .

Доступ к MySQL - небольшая программа, которая преобразует базы данных Microsoft Access в MySQL.

  • Интерфейс мастера.
  • Перенос данных непосредственно с одного сервера на другой.
  • Создать файл дампа.
  • Выберите таблицы для переноса.
  • Выберите поля для передачи.
  • Передача защищенных паролем баз данных.
  • Поддерживает как общую безопасность, так и безопасность на уровне пользователя.
  • Факультативный перенос индексов.
  • Опциональный перенос записей.
  • Необязательный перенос значений по умолчанию в определениях полей.
  • Идентифицирует и передает типы полей автоматического номера.
  • Интерфейс командной строки.
  • Простота установки, удаления и обновления.

Смотрите вышеупомянутую ссылку для пошагового руководства со скриншотами.

41 голосов
/ 09 августа 2014

Если у вас есть доступ к linux box с установленным mdbtools, вы можете использовать этот скрипт оболочки 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

Импортирует все таблицы и все данные.

26 голосов
/ 06 сентября 2015

Я изменил скрипт 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
9 голосов
/ 11 сентября 2013

Бесплатные инструменты для баз данных не экспортировать таблицу RELATIONSHIPS , но вы можете использовать это : преобразование MS Access в MySQL со связями

Отлично работает и экспортирует все отношения в MySQL.

enter image description here

6 голосов
/ 08 мая 2017
Пользователи

OSX могут следовать Nicolay77 или mikkom , использующим утилиту mdbtools .Вы можете установить его через Homebrew .Просто установите ваш домашний напиток и перейдите

$ homebrew install mdbtools

Затем создайте один из сценариев, описанных парнями, и используйте его.Я использовал один из mikkom, преобразовал все мои файлы MDB в sql.

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

(кстати, содержит более 1 таблицы)

6 голосов
/ 03 мая 2011

Попробуйте Мастер данных для MySQL .Это инструмент для преобразования структуры и данных из любого ADO-совместимого источника (например, MS Access) в базы данных MySQL.См. краткое руководство по строкам подключения , чтобы создать строку подключения к файлу MS Access.

5 голосов
/ 20 апреля 2011

Мы использовали ESF Database Convert много раз для этой цели.DTS обычно был слишком ненадежным.И рекомендации на странице MySQL были крайне устаревшими.

5 голосов
/ 20 апреля 2011
3 голосов
/ 24 октября 2016

Я использовал SQLYog Ultimate для импорта данных из файла MDB, это был очень простой процесс.

вам может понадобиться установить эти средства поддержки.

ядро ​​базы данных MS Access

и загрузите SQLYog Ultimate ниже

Выберите SQLYog, вы можете использовать пробную версию для этого

2 голосов
/ 23 июня 2017

Этот инструмент Mac MDB / ACCDB Viewer хорошо работал для моих нужд.Бесплатная пробная версия позволила мне доказать, что все выполнило необходимое, и экспортировать половину всех строк.Полная версия была необходима для экспорта всей базы данных / таблиц.

...