2009-02-24 2 views
2

Мне недавно был предоставлен файл базы данных MS Access .mdb и попросил его использовать в системе Linux. Я ищу способ конвертировать базу данных Access в базу данных с открытым исходным кодом, такую ​​как MySQL или PostGres.Портирование с MS Access

У меня нет MS Office, и это единичный проект для добровольной организации, поэтому я не хочу тратить деньги, если этого избежать. Я запускаю Vista x64 и имею виртуальный бокс Linux, поэтому что-то полезное в одном из них будет хорошо.

+0

Я знаю, что это проигравшая битва, но: У вас нет MS Access MDB, а Jet MDB. Возможно, кто-то создал его с помощью Access, но если это всего лишь таблицы данных, все, что вы собираетесь использовать, это Jet, а не часть приложения Access MDB. –

+0

Jet устарел, поэтому он должен * использовать * только при соединении с устаревшим приложением MS Access (я говорю «наследие», потому что, безусловно, новые проекты должны быть в Access2007). Я думаю, что «файл базы данных MS Access .mdb» описывает это с небольшим пространством для двусмысленности :) – onedaywhen

ответ

1

Я использовал MySQL Migration Toolkit, и он отлично работал для таблиц, даже создавая многоразовый скрипт. Он бесплатный и простой в использовании.

Этот инструментарий теперь EOL, и его заменяет MySQL Workbench 5.2.

К сожалению, это связано с тем, что «проблема привела к тому, что программа перестала работать правильно», когда я пытаюсь использовать MS Access в своей системе. На последнем этапе, конечно.(Jan 16 2013)

+0

К сожалению, MySQL Workbench в настоящее время не поддерживает миграцию баз данных Access. Возможно, предыдущий MySQL Migration Toolkit сделал это, но MySQL Workbench не может (по крайней мере, версии v.5.2.47, версия, которую я только что протестировал). Попытка миграции .accdb через соединение ACE ODBC завершилась неудачей при попытке обратного проектирования схемы, и попытка миграции .mdb через соединение Jet ODBC полностью разбила MySQL Workbench. –

+0

@GordThompson Этот вопрос датирован '09. В '09 Инструментарий работал очень хорошо. – Fionnuala

+1

Правда, но ваш ответ был отредактирован 2013-01-16 (и снова сейчас) и недавний аналогичный вопрос [здесь] (http://stackoverflow.com/questions/15608180/exporting-ms-access-databse-to -mysql) был закрыт как дубликат и ссылался на этот. Поэтому я подумал, что комментарий был уместным, когда я обнаружил, что MySQL Workbench не смог выполнить эту работу. –

2

К счастью, вам не нужен MS Access для получения данных из базы данных Access. Хотя есть такие инструменты, как MDBTools, которые будут читать файлы .mdb в Linux, я обнаружил, что они нестабильны для более крупных и более сложных баз данных. Лучший способ - использовать ADO или ODBC в Windows для экспорта данных из базы данных .mdb в формат, который вы можете импортировать где-то еще (например, csv).

Мне повезло с использованием DBI with Ruby или с использованием ADO in a Ruby script.

0

Есть две части процесса

1) конвертировать из базы данных Access в сценариях, есть некоторые good options хотя вы, возможно, потребуется доступ и потенциально Sql сервер тоже, чтобы сделать это

2) Выберите свой целевая база данных - MySql будет казаться подходящим, запустите его в Linux или Windows и запустите ddl и данные из сценариев.

Не знаете, как вы можете это сделать без доступа, хотя вы знаете, как выглядит схема? Если вы столкнулись с проблемами, я мог бы помочь с шагом 1, но на данный момент у меня нет установки Linux.

1

Либо М.И.С. QL или Postgres отлично работают в качестве хранилища данных для данных доступа. Если ваша база данных Access содержит Forms или Reports, на самом деле это не является прямой заменой в Open Source, и вам нужно будет сохранить переднюю часть Access и получить доступ к данным с помощью драйверов ODBC или создать новую серию форм или отчетов в PHP или ваш любимый язык веб-скриптов.

+0

http://www.kexi-project.org/ стремится стать бесплатным Microsoft Access для Linux с открытым исходным кодом. Как и вы, я сомневаюсь, что формы/отчеты будут работать одинаково. – bernie

1

У меня была такая же проблема сейчас, и нашел это бесплатное программное обеспечение, чтобы быть именно то, что мне было нужно: http://www.bullzip.com/products/a2m/info.php

Он извлекается все из файла MDB генерируется файл SQL Я импортированного непосредственно в мой сервер MySQL ,

+0

Когда вы говорите «все из файла MDB», вы имеете в виду «таблицы и их данные». Файлы MDB могут включать намного больше, чем таблицы данных. –

+0

Извините, вы правы. Я имею в виду только таблицы и их данные, что мне было необходимо. :) – BackstreetStruts

0

Я прошу различать: нет необходимости использовать внешние инструменты или дорогостоящее промежуточное программное обеспечение. самый простой, самый чистый, самый дешевый, быстрый, безопасный (я сказал BEST?) решение использует ODBC и полностью интегрируется.