MySQL 5.0にCSEで接続する方法

MySQLGUIクライアントはほとんどの人が「phpmyadmin」か「MySQL Query Browser」を使っていると思うんだけど、phpmyadminはWebアプリなので色々とダルイ事が多いし、MySQL Query Browserは日本語の表示は出来ても入力が出来なくて困る、と言うどちらもイマイチで結構ストレスになる事が多かった。


んで、今日ちょっと調べていたらCSEからMySQL 5.0に繋ぐ方法が分かったので手順をメモ。
日本語もちゃんと表示・入力できた。
CSEから直接MySQL 5.0につなごうとすると例外吐いて落ちるんだけど、ODBCを経由すると接続できる。
以下、手順。

概要

大きく以下の三つ。

  1. MySQL Connector/ODBCのダウンロード・インストール
  2. ODBCの設定
  3. my.cnfの設定

MySQL Connector/ODBCのダウンロード・インストール

http://dev.mysql.com/downloads/connector/odbc/3.51.html
からダウンロードしてインストール。
自分はMSI Installerにした。

ODBCの設定

  • ファイル名を指定して実行より「odbcad32.exe」を開く。
  • ユーザDSNタブから「追加」ボタンをクリックする。
  • データソース一覧が表示される。データソースに「MySQL ODBC 3.51Driver」を選択し、完了をクリック。
  • 今度は設定値を入力するダイアログが開くので、Loginタブに必須となる情報を入力。Data Source Nameはデータソース一覧から選択するときに表示される。
  • Advancedタブのさらにその下、Flag3タブの「Read Options From my.cnf」にチェックを入れる。
  • 後その他のオプションはよく分からないのでデフォルトのまま。OKをクリックして終わる。

これでデータソースの作成は完了。

my.cnfの設定

  • C:\my.cnfと言うファイルを作成する。
  • テキストファイルの中身を以下のように。(注2)

[client]
default-character-set=sjis

接続

設定はこれで終わり。
後はCSEからODBCでさっき作ったデータソースを選択して接続すればOKなはず。

自分メモ

自分の環境ではMySQLの設定はサーバ・クライアント共にUTF-8。勿論DBもUTF-8
で、CSEから
show variables like 'char%';
すると以下のような結果になる。

Variable_name Value
character_set_client sjis
character_set_connection sjis
character_set_database utf8
character_set_filesystem binary
character_set_results sjis
character_set_server utf8
character_set_system utf8
character_sets_dir C:\dev\mysql5.0\share\charsets\

注意書き

(注1)
cnfという拡張子はWindowsだとNetMeeting用か何かに関連付けられていて、my.cnfでファイルを作成するといきなりアイコンが変わってビックリする。でもファイルの中身自体が変わるわけではないので、テキストで開いて編集すればたぶん大丈夫。
自分は我慢ならなかったのでregsvr32 -u msconf.dllとして強制的に排除した。
他に影響があるかどうか不明だけど、参考URLに挙げたサイトで削除OKと出ているのでたぶん問題ないと思われる。まぁ自己責任で。


(注2)
初めはmy.cnfでデフォルト文字コードUTF-8を指定していたのだけれど、CSE側がSJISらしく文字化けしてしまった。
たぶんODBCコネクタがSJIS <-> UTF-8変換をよしなにしてくれてるんだと思う。