3

長年の潜伏者、初めてのポスター。誰かが私を助けてくれることを願っています。

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 --target=root@127.0.0.1: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 が接続され、すべての操作が期待どおりに機能します。

ああ、そうではありません: 両方とも同じ localhost マシン上にあります。

誰かがこれに光を当てることができれば、私は永遠にお世話になります. 前もって感謝します

4

3 に答える 3

2

ここから:

[Microsoft][ODBC Driver Manager] 引数の値が無効です。あなたが提供したエラーメッセージとコードに関しては、データベースが無効であるか、アクセスできないようです。これは、データベースが存在しないか、ユーザーがデータベースにアクセスする権限を持っていないことを意味します。

サーバー名の後にインスタンスを指定する必要があることが判明したため、ODBC データ ソースを作成するためのダイアログ ボックスのサーバー名に、MyServer\SQLEXPRESS または .\SQLEXPRESS のいずれかとして入力する必要があります。

于 2012-08-03T06:49:29.917 に答える
1

からデータベースへの接続に問題があると思われますwbcopytables.exe。これは別のツールであるため、Migration Wizard の残りの部分から接続できるからといって、 に接続するとは限りませんwbcopytables.exe

私が最も心配しているのは、DSN に空白文字が含まれていることです。これは、Windows 端末によって独立したコマンド ライン パラメータとして解釈される場合があります。できることの 1 つは、DSN 名を編集して空白を削除し、もう一度やり直すことです。

また、私のブログ記事「How-To: Guide to Database Migration from Microsoft SQL Server using MySQL Workbench」で説明されているように、すべての接続パラメーターを明示的に入力して、DSN なしで接続することもできます。

ところで、MySQL Workbench 5.2.42が出ているので、ぜひ入手してください。移行ウィザードはかなり新しいため、最近の Workbench リリースごとに重要なバグ修正が行われる可能性があります。

どちらの場合でも、問題を再現する方法、考えられる解決策などについての詳細な説明とともに、問題をバグとして報告する必要があると思います。

お役に立てれば。

于 2012-08-30T12:39:24.970 に答える
0

わかりました。Java をアンインストールします。Java 1.6 をインストールし、MySQL 移行ツールを使用します。すべてのデータ型を varchar、int、bit に変更します。移行を実行します....データを食べます。

于 2012-08-31T19:32:50.437 に答える