2011-12-25 10 views
2

当社製品の旧バージョンでは、システムの現在の状態を単一のアーカイブファイルに取り込むことができました。これには、< XXX.frm、XXX.myd、XXX.myi >トリプルが含まれています。MySQLなしでmysqlデータベースファイル(* .frm、* .myd、* .myi)を調べるにはどうしたらいいですか?

私たちは、次の世代の製品を持っています。これは、データベースファイルをキャプチャするのと同じように愚かではありませんが、古いバージョンで作成されたアーカイブを読む必要があります。

当社の製品は、商用閉鎖ソース製品ですが、それほど高価ではありません。 2番目の理由(オラクルはMySQLのライセンスを変更したため)、MariaDBを使用することができないため、MySQLの使用を中止しなければなりませんでした(ライセンスが会社の弁護士から免れた)。

私の質問は、これらのMySQLデータベースファイルを読む別の方法がありますか?商用軽量ソリューションはうまくいきます。結局のところ、私たちはデータベースファイルの読み取り専用探索について話しています。フリー/オープンソースの代替案も、それらを使用するコードがオープンソースでなければならないという意味ではない限り、歓迎します。

ありがとうございました。

EDIT

問題以外にも、私がまたは古いMySQLデータベースファイルを読み取るためのMySQLの古いバージョンを使用し続けることができないことができるかどうか、疑問が私はそれらを読むことができますどのように残っていますか?つまり、MySqlはもはや私たちのデータベースではありません。古いMySql実装にバンドルすることができますが、ファイルを読み込むために完全なデータベースエンジンをインストールする必要がありますか?私はむしろそれを避けるだろう。

+0

あなたがしたいのは、データを読み込むだけであれば、それほど難しいことではありません。いくつかのドキュメントを読むか、リバースエンジニアリングをするだけです。ああ、Myiファイルは無視してください。あなたはちょうどmydファイルにあるデータとフォーマット(frmファイル)を必要としています... – ircmaxell

+0

これはいつもオプションですが、最後のままにしておきたいと思います。 – mark

+0

古いバージョンのMySQLは、プロジェクトで既に使用されている場合は、古いライセンス方式で使用することができます。 [OSSのライセンス変更は、以前のリリースを含むすべてのバージョンをカバーしていますか?](http://programmers.stackexchange.com/questions/82131/)を参照し、弁護士に相談してください。 – outis

答えて

1

テーブル構造を使用する場合は、次のリンクを読むだけで十分です。 MySQL internals (all)File FormatMyISAM

それは10G少ないし、データベースのサイズは十分ではないですした場合には、10G未満DBとの自由であるMS SQL Server Expressを(使用することができます。MS SQL Serverの別のバージョンを比較するためのページhereです)。 MySQLファイルをMs SQL Serverに変換する方法を検索します。ここにはBingから得た最初のリンクがあります:link1(私はそれらのすべてがMySQLサーバを必要としないと思います)

これは適切ではない場合。 XtraDB、OurDelta、Drizzle、PBXなどの別のMySQLフォークを試すことができます。

あなたは何か役に立つと思っています。

+0

残念ながら、データベースエンジンをインストールせずにファイルを読み取る方法が見つかりません。 – mark

1

解決策が見つかりました。残念ながら、それはMySQLを含んでいるので、潜在的なライセンス問題があります。ここにある - それが取るすべては、MySQLのソースコードをダウンロードして自分自身を助けるあるhttp://dev.mysql.com/doc/refman/5.0/en/libmysqld.html

:含まれたフォルダから

  • libmysqld.dll
  • libmysqld.lib
  • ヘッダファイル

次に、libmysqld.dll内の組み込みMySQLデータベースエンジンを使用してファイルを読み取ることができます。

関連する問題