公式バイナリにあって"Enterprise"ビルドに無いもの

この3つ。

  • echo.exe
  • mysqld-debug.exe
  • mysqld.exe

オラ、echo.exeなんて初めてみたぞ。

試しに実行してみたら、Linuxのechoコマンドだった。どこかでecho "hoge" >> fugaとかやったりするためなのかなぁ。

調べてみたら、client/mysqltest.cが使うみたい。テスト用ですなぁ。あぁ、Windowsでもテストスイートを流せるようにするっていう一連の改変の賜物なのかもね。



なんかいろいろ以前と変わってる。ビルドしてもlib_releaseとかができず、各ディレクトリの中にバイナリができあがってる。これじゃcopy_mysql_files.bat動かんし。。。

それに、いろいろなターゲットでビルドしてみても、mysqld-nt.exeとかmysqld-debug.exeはできるのに、mysqld.exeができん。どれだろう。。。

release98

VC++Files/sql/mysqld.vcprojを読んだ限りではmysqld.exeを生成するのはこれらしい。

  • release98
  • Enterprise GPL
  • Enterprise GPL Debug

これらをやればecho.exe以外はとりあえずできそう。

vcprojとdswで不整合

vcprojではsql/releaseとかsql/debugとかのディレクトリを使うようになっていて(新方式?)、一方ではdswではclient_releaseとかclient_debugとかのディレクトリを使うようになっている(従来方式)。

思うに、MySQL 5.0とか、MySQL Enterpriseとかへの対応がMySQLビルド on Windowsの点で対応がまだ終わってないということではなかろーか。

sql/mysqld.dswでmysqldプロジェクト単体で起動すると、ソリューションコンフィグレーションのところに"max"とか"max-nt"とかの従来方式の名前になってるし。

で、さて自分はどっちを使うのがいいのかなぁ。今後のことも考えると新方式だけど、これ用のcopy_mysql_files.batを自作しないとじゃん!

MySQL ABのビルドチームは(当然)新方式用のやつを持ってるはずだけど、どこに公開してるんじゃー。分からん。

mysqld.exeとmysqld-nt.exeは同じもの

公式バイナリで以下を実行してみたけど差分はなかった。

diff -a mysqld.exe mysqld-nt.exe

ということでrelease98いらない子だね。