как я могу преобразовать файл mdb (access) в mysql (или простой файл sql)?

<p>можно ли создать дамп команд sql из базы данных microsoft access? я надеюсь преобразовать этот файл mdb в базу данных mysql для импорта, чтобы мне не пришлось проходить через шаг csv.</p><p>я ожидаю, что даже файл дампа mssql будет по-прежнему содержать работоспособные команды sql, но я ничего не знаю о mssql, пожалуйста, дайте мне знать.</p>

<p>вы хотите конвертировать mdb в mysql (прямой перевод в mysql или mysql dump)?</p><p>попробуйте программное обеспечение под названием <a href="http://www.bullzip.com/products/a2m/info.php">доступ к mysql</a> . </p><blockquote> <p><strong>access to mysql</strong> - небольшая программа, которая преобразует базы данных microsoft access в mysql.</p> <ul> <li>мастерский интерфейс.</li> <li>перенос данных напрямую с одного сервера на другой.</li> <li>создайте файл дампа.</li> <li>выберите таблицы для переноса.</li> <li>выберите поля для передачи.</li> <li>передача защищенных паролем баз данных.</li> <li>поддерживает как общую безопасность, так и безопасность на уровне пользователя.</li> <li>опциональный перевод индексов.</li> <li>необязательный перенос записей.</li> <li>необязательный перенос значений по умолчанию в определениях полей.</li> <li>определяет и передает типы полей автоматического номера.</li> <li>интерфейс командной строки.</li> <li>простота установки, удаления и обновления.</li> </ul> </blockquote><p>смотрите вышеупомянутую ссылку для пошагового руководства со скриншотами. </p>

<p>если у вас есть доступ к linux box с установленным mdbtools, вы можете использовать этот скрипт bash shell (сохранить как mdbconvert.sh):</p><pre><code>#!/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 </code></pre><p>чтобы вызвать это, просто назовите это так:</p><pre><code>./mdbconvert.sh accessfile.mdb mysqldatabasename </code></pre><p>это импортирует все таблицы и все данные.</p>

<p>я изменил скрипт nicolay77, чтобы выводить базу данных в stdout (обычный способ сценариев unix), чтобы я мог выводить данные в текстовый файл или передавать их в любую нужную мне программу. полученный скрипт немного проще и работает хорошо.</p><p>некоторые примеры:</p><pre><code>./to\_mysql.sh database.mdb > data.sql ./to\_mysql.sh database.mdb | mysql destination-db -u user -p </code></pre><p>вот модифицированный скрипт (сохраните в to\_mysql.sh)</p><pre><code>#!/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 </code></pre>

<p>бесплатные инструменты для баз данных <strong>не экспортируйте таблицу relationships</strong>, <strong>, но вы можете использовать это</strong>: <a href="http://en.latindevelopers.com/ivancp/2012/ms-access-to-mysql-with-relationships/">преобразование ms access в mysql со связями</a> </p><p>работает нормально и экспортирует все отношения в mysql.</p><p><img src="https://i.stack.imgur.com/0esve.png" alt="enter image description here"></p>

<p>попробуйте <a href="http://sqlmaestro.com/products/mysql/datawizard/">данные wizard для mysql</a> . это инструмент для преобразования структуры и данных из любого ado-совместимого источника (например, ms access) в базы данных mysql см. <a href="http://sqlmaestro.com/products/mysql/datawizard/resources/anysql\_maestro\_connection\_strings/">краткое руководство по строкам подключения</a> для создания строки подключения к вашему файлу ms access.</p>

<p>попробуйте <a href="http://support.microsoft.com/kb/285829">службы преобразования данных</a> от microsoft</p>

<p>мы использовали <a href="http://easyfrom.net/">esf database convert</a> много раз для этой цели. dts обычно был слишком ненадежным. и рекомендации на странице mysql были крайне устаревшими.</p>

<p>пользователи osx могут использовать <strong>nicolay77</strong> или <strong>mikkom</strong>, которые используют утилиту <strong>mdbtools</strong>. вы можете установить его через <strong> <a href="https://brew.sh/">homebrew</a> </strong>. просто установите ваш доморощенный и затем идите</p><pre><code>$ homebrew install mdbtools затем создайте один из сценариев, описанных парнями, и используйте его. я использовал mikkom один, преобразовал все мои файлы mdb в sql.$ ./to\_mysql.sh myfile.mdb > myfile.sql </code></pre><p>(кстати, содержит более 1 таблицы)</p>

<p>я использовал sqlyog ultimate для импорта данных из файла mdb, это был очень простой процесс.</p><p>вам может понадобиться установить эти средства поддержки.</p><p> <a href="http://www.microsoft.com/en-us/download/details.aspx?id=13255">движок базы данных ms access</a> </p><p>и скачайте sqlyog ultimate ниже</p><p> <a href="https://www.webyog.com/product/downloads">выберите sqlyog, вы можете использовать пробную версию для этого</a> </p>

<p>я использую mac, я делаю это, чтобы конвертировать;</p><ol> <li>загрузить accdb mdb explorer <a href="http://accdb-mdb-explorer.en.softonic.com/mac">http://accdb-mdb-explorer.en.softonic.com/mac</a> </li> <li>откройте файл mdb</li> <li>экспортировать как sql</li> <li>импортируйте в mysql, используя mysql workbench.</li> </ol>

<p>этот инструмент mac <a href="https://eggerapps.at/mdbviewer/">mdb/accdb viewer</a> хорошо работал для моих нужд. бесплатная пробная версия позволила мне доказать, что все выполнило необходимое и экспортировать половину всех строк. полная версия была необходима для экспорта всей базы данных/таблиц.</p>

<p>если вас не слишком беспокоит конфиденциальность файлов .mdb, которые вы хотите преобразовать, пожалуйста, знайте, что этот сайт позволил мне восстановить две 15-летние базы данных .mdb access (вспомните старые времена, когда asp управляли в интернете?) всего за две минуты: <a href="http://www.mdbopener.com/">http://www.mdbopener.com/</a> </p><p>базы данных были преобразованы в файлы excel, по одному листу для каждой таблицы. как раз то, что мне было нужно. не могло быть быстрее, чтобы восстановить мои (очень) старые данные ...</p><p>идентификаторы, хранящиеся в каждой таблице, преобразовать это снова в mysql (после сохранения в формате csv) было так же просто, как и всего за несколько минут. </p>

<p>я пытался <a href="https://www.rebasedata.com/convert-mdb-to-mysql-online">https://www.rebasedata.com/convert-mdb-to-mysql-online</a> и это работает довольно хорошо.</p><p>онлайн решение без необходимости регистрации.</p>