私はこれに一日中取り組んできましたが、今は立ち往生しているので、誰かが私を助けてくれることを願っています:)
チャレンジ。
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 を使用しています
どんな助けでも大歓迎です