Как экспортировать базу данных SQL Server в MySQL?
Я пытаюсь преобразовать из файла резервной копии базы данных SQL Server (.bak
) в MySQL. Этот вопрос и ответы были очень полезны, и я успешно импортировал базу данных, но теперь я застрял в экспорте в MySQL.
Был предложен набор инструментов миграции MySQL, но, похоже, он был заменен MySQL Workbench. Можно ли использовать MySQL Workbench для миграции с SQL Server так же, как сработал инструмент миграции?
Или набор инструментов миграции все еще доступен где-нибудь?
Ответы
Ответ 1
Вы можете использовать MySQL Workbench, который обеспечивает возможность быстрой миграции данных и приложений из Microsoft SQL Server в MySQL с меньшим количеством времени и усилий.
В этом инструменте есть много интересных функций, таких как:
- Переносы базы данных - включает миграции из Microsoft SQL Server, Sybase ASE и PostgreSQL.
- Управление проектами миграции - позволяет настраивать, копировать, редактировать, выполнять и планировать миграции.
Подробнее
http://www.mysql.com/products/workbench/migrate/
Ответ 2
Я использую sqlyog для переноса из mssql в mysql. Я попробовал Инструмент миграции и верстак, но ему понравился sqlyog для SJA. Я мог бы запланировать процесс импорта и мог делать инкрементный импорт с помощью предложения WHERE.
![enter image description here]()
Ответ 3
PhpMyAdmin имеет мастер импорта, который позволяет импортировать также тип файла MSSQL.
См. http://dev.mysql.com/doc/refman/5.1/en/sql-mode.html для типов поддерживаемых им сценариев БД.
Ответ 4
Как уже упоминалось выше, если ваши данные содержат символы табуляции, запятые или новые строки в ваших данных, тогда будет очень сложно экспортировать и импортировать его с помощью CSV. Значения будут переполнены из полей, и вы получите ошибки. Эта проблема еще хуже, если любое из ваших длинных полей содержит многострочный текст с символами новой строки.
Мой метод в этих случаях - использовать служебную программу командной строки BCP для экспорта данных с SQL-сервера, а затем использовать команду LOAD DATA INFILE.. INTO TABLE в MySQL для чтения файла данных. BCP является одним из самые старые утилиты командной строки SQL Server (начиная с рождения SQL Server - v6.5), но он по-прежнему остается одним из самых простых и надежных способов получения данных.
Чтобы использовать этот метод, вам нужно создать каждую таблицу назначения с той же или эквивалентной схемой в MySQL. Я делаю это, щелкнув правой кнопкой мыши базу данных в SQL-менеджере предприятия, затем Tasks- > Generate Scripts... и создав SQL script для всех таблиц. Затем вы должны преобразовать script в MySQL совместимый SQL вручную (определенно, самую худшую часть задания) и, наконец, запустить команды CREATE TABLE в базе данных MySQL, чтобы у вас были сопоставленные таблицы с версиями SQL Server по столбцам, пустыми и готов к данным.
Затем экспортируйте данные со стороны MS-SQL следующим образом.
bcp DatabaseName..TableName out TableName.dat -q -c -T -S ServerName -r \0 -t !\t!
(Если вы используете SQL Server Express, используйте значение -S так: -S "ComputerName\SQLExpress" )
Это создаст файл с именем TableName.dat с полями, разделенными на! [tab]! и строки, ограниченные символами \0 NUL.
Теперь скопируйте файлы .dat в /tmp на сервере MySQL и загрузите на стороне MySQL так:
LOAD DATA INFILE '/tmp/TableName.dat' INTO TABLE TableName FIELDS TERMINATED BY '!\t!' LINES TERMINATED BY '\0';
Не забывайте, что таблицы (TableName в этом примере) должны быть созданы уже на стороне MySQL.
Эта процедура очень болезненно ручна, когда дело доходит до преобразования схемы SQL, но она работает даже для самых сложных данных, и поскольку она использует плоские файлы, вам никогда не нужно убеждать SQL Server говорить с MySQL или наоборот.
Ответ 5
Вы можете сделать это легко, используя Инструмент загрузки данных. Я уже делал это, прежде чем использовать этот инструмент и нашел его хорошим.
Ответ 6
если у вас есть MSSQL-совместимый SQL-дамп, вы можете конвертировать его в MySQL-запросы один за другим с помощью этого онлайн-инструмента
http://burrist.com/mstomy.php
Надеюсь, что это спасло ваше время.
Ответ 7
Похоже, вы исправите: Инструмент Migration Toolkit должен быть интегрирован с MySQL Workbench, но я не думаю, что это еще не завершено. Смотрите объявление об окончании срока службы для инструментов GUI MySQL (в том числе набор средств миграции):
http://www.mysql.com/support/eol-notice.html
MySQL поддерживает архивы пакетов инструментов GUI MySQL:
http://dev.mysql.com/downloads/gui-tools/5.0.html
Ответ 8
Я использовал приведенную ниже строку подключения на вкладке "Дополнительно" в наборе инструментов миграции MySQL для подключения к экземпляру SQL Server 2008:
jdbc:jtds:sqlserver://"sql_server_ip_address":1433/<db_name>;Instance=<sqlserver_instanceName>;user=sa;password=PASSWORD;namedPipe=true;charset=utf-8;domain=
Обычно параметр имеет "systemName\instanceName". Но в вышесказанном не добавляйте "systemName" (используйте только имя экземпляра).
Чтобы проверить, что такое instanceName, перейдите в services.msc и проверьте DisplayName экземпляра MSSQL. Он похож на MSSQL $instanceName.
Надеемся на эту помощь в MSSQL-подключении из инструментария миграции mysql.
Ответ 9
MySQL Migration Toolkit (1.1.10) по-прежнему доступен для загрузки отсюда:
http://downloads.mysql.com/archives.php?p=MySQLDeveloperSuite&v=1.1.10
Ответ 10
загрузка больше не доступна на официальном сайте (http://dev.mysql.com/downloads/gui-tools/5.0.html)
вместо этого взгляните сюда:
http://download.softagency.net/MySQL/Downloads/MySQLGUITools/
Ответ 11
У меня были некоторые данные, которые я должен был получить от mssql в mysql, с трудом находили решение. Итак, что я сделал в конце (немного длинный путь, чтобы сделать это, но в крайнем случае он работает):
Надеюсь, что это поможет