3

私はこれに一日中取り組んできましたが、今は立ち往生しているので、誰かが私を助けてくれることを願っています:)

チャレンジ。

MS SQL から MySQL にデータを移行します。

Windows 7 Home エディションの PC で SQL Server Management Studio を使用して復元した bak ファイルとして受け取った MS SQL。

LAMP を実行している Web サーバー上にソース MySQL データベースを作成しました。

解決策(おそらく)現在、データベースを変換しようとしています。最初はテスト用のテーブルが1つだけで、データベース->移行ウィザードでMySQL Workbenchを使用していますが、今はバルクデータ転送で立ち往生しています。このステップで MySQL データベースにテーブルが作成され、データが転送されることを期待していますが、それは実現しません。

ソースについては、接続方法 = ODBC (ネイティブ) を選択します ソースおよび宛先データベースへの接続に問題はありません

スキーマ情報をテーブル プレフィックスとして保持することを選択したため、インポートされたテーブルは次のようになります。

移行ステップが成功しました (選択したオブジェクトを移行し、SQL 作成ステートメントを生成します)

Create ステートメントは、編集しないとこのようになります CREATE TABLE IF NOT EXISTS 'restored_database_name'.'dbo_table_name' … 'restored_database_name' の部分でパーミッション エラーが発生すると思います。これをphpMyAdminのSQLタブに直接入力すると実行されます。したがって、次のように変更します: CREATE TABLE IF NOT EXISTS 'dbo_table_name' …

また、デフォルトでは、これは SQL の一部です: DROP SCHEMA IF EXISTS 'restored_database_name'; CREATE SCHEMA IF NOT EXISTS 'restored_database_name … これもいくつかの権限の問題を引き起こすと思うので、これらをコメントアウトしました。

次のステップでは、「Create schema in target RDBMS」のチェックを外します。これは必要ないと思うからです。

問題: 次のステップでは何も興味深いことはありませんが、「一括データ転送」で次のエラーが発生します: エラー: 'restored_database_name'. 'dbo_database_name': mysql_stmt_prepare: テーブル 'dbo_database_table_name' のユーザー 'mysql_user_name'@host' に対する SELECT コマンドが拒否されました。0 行のコピーが完了しました。

エラーは、宛先データベースのアクセス許可に何らかの形で関連していると思います。create tableコマンドだけでなく、INSERTコマンドでもSQLファイルを作成できるのではないかと思うので、SQLを取得して、コマンドラインまたはphpmyadminを使用してインポートできます。

Workbench 5.2 CE を使用しています

どんな助けでも大歓迎です

4

1 に答える 1

1

Workbench の Migration Wizard に進んだようです。何かが足りないだけかもしれません。手順を確認できるように、このブログを確認することをお勧めします: How-To: Guide to Database Migration from Microsoft SQL Server using MySQL Workbench

残念ながら、Migration Wizard のデータ コピー コマンド ライン ユーティリティを使用してすべての挿入を含む SQL ファイルを生成することはできませんが、MS SQL Server Management Studio からこれを取得できると確信しており、MySQL では変更なしでほとんど機能するはずです。 (またはマイナーな変更を加えて)。

于 2012-09-30T22:49:30.713 に答える