思わぬ理由により、開発環境をWindows7(x64)に上げる決心がついた。その中で、MySQLへのODBC接続でハマりにハマった上で解決した(?)ので記録しておく。
普通に考えれば、新しい mysql-connector-odbc-5.1.7-winx64.msi でインストールすれば問題ないようなものなのだが、どうも挙動が安定せず、たとえば
・いったん作ったODBCエントリが二度と編集できなくなる
・日本語がどうやっても化ける
・開発環境が3系のMySQLコネクタを要求してくるので、そっちから繋がらない。
などの問題が起こる。
特に3つ目は致命的なので、結局3系のコネクタ、3.51.27を利用するしかないわけだが、こちらはこちらで64ビット版のインストーラが提供されていない。32ビット版をインストールすることはできるのだが、そうしてもODBCのデータソース管理に、MySQLドライバが出てこないので選べない。
途方に暮れながらMySQLのドキュメントを眺めていたところ、気を引く記述が。
http://www.mirrorservice.org/sites/ftp.mysql.com/doc/refman/5.1/ja/myodbc-errors.html#qandaitem-24-1-6-3-1-2
Windows XP x64 版、または Windows Server 2003 R2 x64 に Connector/ODBC をインストールしました。インストールは成功したのですが、Connector/ODBC ドライバが ODBC Data Source Administrator に現われません。
つまるところ、32ビット版のODBCドライバをふつうにインストールすると、それは%systemRoot%\SysWOW64 にインストールされるのだが、コントロールパネルから呼び出されるデータソースアドミニストレータは%systemRoot%\system32に実態が存在しており、また同じ場所にあるドライバしかスキャンしないため、32ビット版のドライバを64ビットOSにインストールしても、そのままではドライバが表示されてこない(もちろんつかえもしない)ということのようだ。
これを回避するには、コントロールパネルからデータソースの管理を開くのではなく、SysWOW64\odbcad32.exe で起動するデータソース管理をつかえとある。実際その通りにしてみたところ、ふつうにMySQLへの接続設定ができ、かつ昔32ビット環境でコンパイルしたアプリケーションもそのまま動作したのであった。
放っておいたら絶対忘れるので、記録しておく。
posted by Tig3r at 02:12|
Comment(7)
|
TrackBack(0)
|
テクニカル日記
ありがとうございます。
64Bit版入れてひどいことになったので・・・ww
この記事に出会わなかったらヤバかった…w
同じことで悩んでいました・・・
助かりました。
とても とても 助かりました
助かりました
有用な情報ありがとうございました