83


22

SQL Server 2005からMySQLにデータをエクスポートする方法

たくさんのデータを取り出そうとしている「SQL Server 2005」に頭を悩ませています。 私はその中に約300のテーブルを持つデータベースを与えられました、そして私はこれをMySQLデータベースに変える必要があります。 私の最初の呼び出しはbcpを使用することでしたが、残念ながら有効なCSVは生成されません - 文字列はカプセル化されていないので、カンマを含む文字列を含む行は扱えません(または区切り文字として使用するものはなんでも)もちろんCSVはデータ型について何も教えていないので、create tableステートメントをすべて手書きで書く必要があります。

もっと良いのは、SQL ServerとMySQLの両方に接続できるツールがあれば、それからコピーすることです。 ビュー、ストアドプロシージャ、トリガなどを失うことになりますが、あるDBから別のDBに基本型のみを使用するテーブルをコピーするのは難しくありません。 それは…​ですか?

誰かがそのようなツールを知っていますか? 整数、浮動小数点数、日付時刻、文字列をサポートしている限り、それがいくつの仮定を立てるのか、またはどのような単純化が行われるのかは気にしません。 私はたくさんの剪定、正規化などをしなければなりません。 とにかく私はキー、関係、あるいはそのようなものを保持することを気にしませんが、私は最初のデータセットを速くする必要があります!

5 Answer


60


私が見つけた最良の方法はMySQLによって提供されている MySQL Migration Toolkitです。 私はいくつかの大規模な移行プロジェクトにうまく使用しました。


9


SQL Server 2005の "Standard"、 "Developer"、および "Enterprise"エディションには、http://en.wikipedia.org/wiki/SQL_Server_Integration_Services[SSIS]があります。これは、DTSをSql server 2000に置き換えたものです。 SSISはそれ自身のDBへの組み込みの接続を持っています、そしてあなたは他の誰かがMySQLのために書いた接続を見つけることができます。 Hereはその一例です。 接続が完了したら、2つの間でデータを移動するSSISパッケージを作成できるはずです。

SQlServerからMySQLにデータを移動する必要はありませんでしたが、MySQl接続がいったんインストールされると、2つのSQLServer DB間でデータを移動するのと同じように機能することを想像してください。


8


あるDBから別のDBにスキーマを自動的に複製する良い方法があるかどうかはわかりませんが、独自のPHPソリューションをロールすることは確かにうまくいきます(多分これはあなたの質問でした)。

単にデータをコピーしている場合や、2つのDB間で変更されたスキーマ間で変換するためのカスタムコードが必要な場合は、PHP 5.2とPDOライブラリの使用をお勧めします。 PDO ODBCを使って(そしてMSSQLドライバを使って)接続することができます。 私は他のライブラリを使用してMSSQLからPHPに大きなテキストフィールドとマルチバイト文字を取得することに多くの問題を抱えていました。


8


MSSQL Management Studioを使用する私はMySQL OLE DBでテーブルを移行しました。 データベースを右クリックして、そこから[タスク - >データのエクスポート]に移動し、MsSQL OLE DBソース、MySQL OLE DBソースを指定して、2つのデータソース間の列マッピングを作成します。

データベースとテーブルをMySQLの送り先に事前に設定することをお勧めします(エクスポートではテーブルが自動的に作成されることになりますが、これはしばしば失敗に終わります)。 データベースを右クリックして、[タスク] - > [スクリプトの生成]を使用してMySQLにテーブルを素早く作成できます。 作成スクリプトが生成されたら、MSSQLに存在するキーワードとタイプをMYSQLにステップスルーして検索/置換する必要があります。

もちろん、通常のようにデータベースをバックアップして、MYSQLでMSSQLバックアップを復元するユーティリティを見つけることもできます。 しかし、存在するかどうかはわかりません。


6


もう1つ試すツールは、SQLMaestroスイートです。 - http://www.sqlmaestro.com正確なツールを特定するのは少し面倒ですが、無料および購入用のさまざまなツールがあり、さまざまなタスクを処理できます。複数のデータベースプラットフォーム用。 私はそれがあなたが必要とする適切な「インポート」ツールを持っていると信じているので、私はMySQLのために最初にデータウィザードツールを試すことを勧めます。