Попытка перенести SQL Server на MySQL с помощью MySQL Workbench. Ошибка: [Microsoft][Диспетчер драйверов ODBC] Недопустимое значение аргумента при переносе данных

Давний наблюдатель, первый постер; надеюсь, что кто-нибудь может мне помочь.

Я использую MySQL Workbench 5.2.41 для переноса базы данных с SQL Server на MySQL 5.0.8.

Весь процесс проходит гладко: тесты соединения SQL и MySQL проходят хорошо, схема и таблица создаются, как и ожидалось, все проверяется до шага «Массовая передача данных». В этот момент я получаю эту ошибку:

...
Migrating data...
wbcopytables.exe --odbc-source=DSN=SQL Server 11;DATABASE=;UID=sa [email protected]:3306 --progress --passwords-from-stdin --thread-count=1 --table [GSAClosers_v2] [dbo].[AccountBase] `dbo` `AccountBase`
`dbo`.`AccountBase`:Copying 84 columns of 169530 rows from table [GSAClosers_v2].[dbo].[AccountBase]

ERROR: `dbo`.`AccountBase`:SQLGetData: HY009:10:[Microsoft][ODBC Driver Manager] Invalid argument value `dbo`.`AccountBase`:

Finished copying 0 rows in 0m00s
Copy helper has finished
...

Для коннекторов я использую Microsoft SQL Server/ODBC Data Source/DSN: SQL Server, а для MySQL IP и порт (3306).

SQL Server 2012 Management Studio подключается, и все операции выполняются должным образом.

О, нет: оба находятся на одном локальном хосте.

Если кто-нибудь может пролить свет на это, я буду вечно в долгу. заранее спасибо


person David J Eddy    schedule 02.08.2012    source источник


Ответы (3)


Из здесь:

[Microsoft][Диспетчер драйверов ODBC] Недопустимое значение аргумента. Что касается сообщения об ошибке и кода, который вы предоставили, кажется, что база данных недействительна или недоступна. Это означает, что либо база данных не существует, либо у пользователя нет разрешения на доступ к базе данных.

Оказывается, вам нужно указать экземпляр после имени сервера, поэтому в имени сервера в диалоговом окне для создания источника данных ODBC вы должны ввести его как: MyServer\SQLEXPRESS или .\SQLEXPRESS

person Man_k    schedule 03.08.2012
comment
Дополнительная информация: из 12 таблиц в этой базе данных одна конвертируется по желанию. Другие нет. Я думаю, что это проблема размера и метода SQLGetData. У кого-нибудь есть похожие проблемы? @ Manik Baasha: Спасибо за идею, однако MySQL Workbench без проблем подключается как к источнику, так и к адресату в начале процесса; может читать объекты базы данных и без проблем преобразовывать структуры таблиц, хранимые процедуры и представления. - person David J Eddy; 03.08.2012
comment
Обнаружено следующее: HY009 Недопустимое использование нулевого указателя (DM) Аргумент TargetValuePtr был нулевым указателем. (msdn.microsoft.com/ en-us/library/windows/desktop/) - person David J Eddy; 03.08.2012
comment
TargetValuePtr [Output] Указатель на буфер, в который возвращаются данные. TargetValuePtr не может быть NULL. - person David J Eddy; 03.08.2012
comment
Хорошо, разобрался: удалить java. установите Java 1.6, используйте инструмент миграции MySQL. измените все типы данных на varchar, ints и bits. запускайте миграции.... ешьте данные. - person David J Eddy; 04.08.2012
comment
Я борюсь с этой же проблемой. Вы говорите, что мне нужно понизить версию Java? - person Sharondio; 04.08.2012
comment
Вот что у меня сработало: 1 - Полностью удалил Java 2 - установил заархивированную версию 1.6 3 - затем старый инструмент миграции MySQL. По крайней мере, в моем случае наконец-то удалось выполнить миграцию... все 27-гигабайтные базы данных MsSQL... Я также заметил, что вам в основном нужно изменить все типы полей MySQL на очень простые типы SQL. Например, vchar (256), int, decimal и т. д. Когда миграция будет завершена, при необходимости преобразуйте в определенные типы MySQL. - person David J Eddy; 10.08.2012

Я думаю, у вас могут быть проблемы с подключением к вашей базе данных из wbcopytables.exe. Имейте в виду, что это отдельный инструмент, поэтому тот факт, что вы можете подключиться из остальной части мастера миграции, не означает, что вы будете подключаться в wbcopytables.exe.

Больше всего меня беспокоит то, что в вашем DSN есть пробельные символы. Терминал Windows может интерпретировать это как независимые параметры командной строки. Одна вещь, которую вы можете сделать, это отредактировать свое имя DSN, удалив пробелы, и повторить попытку.

Вы также можете подключиться без DSN, явно указав все параметры подключения, как описано в моем сообщении в блоге: Практическое руководство: руководство по миграции базы данных с Microsoft SQL Server с помощью MySQL Workbench.

И, кстати, поскольку MySQL Workbench 5.2.42 отсутствует, вам следует пойти и получить его. Мастер миграции довольно новый, поэтому важные исправления ошибок, вероятно, запускаются в каждом последнем выпуске Workbench.

В любом случае, я думаю, вам следует отправить сообщение об ошибке с подробным объяснением того, как воспроизвести его, возможные решения и т. д.

Надеюсь это поможет.

person Sergio    schedule 30.08.2012

Хорошо, разобрался: удалить java. установите Java 1.6, используйте инструмент миграции MySQL. измените все типы данных на varchar, ints и bits. запускайте миграции.... ешьте данные.

person David J Eddy    schedule 31.08.2012