2010年09月03日

Windows7(x64)でMySql ODBC接続

思わぬ理由により、開発環境を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
Posted by 開発初心者 at 2010年10月29日 16:07
同じく非常に参考になりました。
この記事に出会わなかったらヤバかった…w
Posted by 通りすがり at 2010年12月27日 00:14
ありがとうございます。
同じことで悩んでいました・・・
助かりました。
Posted by takagi at 2012年01月18日 10:55
(TT ありがとうございました
とても とても 助かりました
Posted by マシュタ at 2012年06月25日 15:57
ありがとうございました。神様です。
Posted by surari at 2012年07月26日 10:50
32bitの開発環境を64bitにしたときに、この問題にぶち当たりました

助かりました
有用な情報ありがとうございました
Posted by ぬの at 2013年03月05日 18:51
助かりました。有り難うございます。
Posted by おの at 2014年10月18日 07:34
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/40504533

この記事へのトラックバック