SEダーツァーの備忘録

システム開発をする上で日々大量に流れ込んでくる『技術面』の知識を、備忘録的に書いています。

CSEを使ってMySQLに接続する - CSE上での文字化けも防止

2010年05月27日 22時32分21秒 | MySQL
データベースにアクセスする為の汎用的なUIツール、「CSE(Common SQL Environment)」を使って、MySQLにアクセスする。

MySQLのバージョンによってはCSEから直接接続する事は可能な様だが、(2010年5月27日現在)最新のMySQL5.x系はCSEから直接接続する事ができない。
以下、MySQLのバージョンはこの5.0系である事を前提とする。

CSEからMySQLに接続する為には、ODBCデータソースを経由する必要がある。

【接続イメージ】
CSE ⇔ ODBC ⇔ MySQL

この接続を可能にする為には、MySQL用のODBCコネクタが必要になる。


使用バージョン
  • MySQL 5.0.67
  • MySQL-ODBCコネクタ 5.1.6




1.ODBCデータソースの設定

ODBCコネクタはWindowsのインストーラが提供されており、簡単にインストールする事が可能。
ダウンロード、インストール手順は割愛する。

ODBCコネクタをインストールすると、「コントロールパネル→管理ツール→データソース(ODBC)」からデータソースを定義する際に
「MySQL ODBCドライバ」を選択する事が可能となる。

後はデータソース名(任意の名前)、ユーザ名、パスワード、DB名を指定してODBCデータソースを定義してやればよい。



2.CSE上での文字化けを防ぐ為の設定

通常、MySQL側の文字コードをサーバ・データベースともに「UTF-8」に設定している場合(※)、「S-JIS」を使用しているCSE上では文字化けを起こしてしまう。
これを防ぐ為に、ODBCデータソースの設定の際に「詳細→Misc Optionsタブ」で「Character Set」を「S-JIS」に設定してやる必要がある。
これにより、MySQL ⇔ CSE 間での UTF-8 ⇔ S-JIS の変換をODBCコネクタが行ってくれる様になる模様。
(表示側の文字コードが「S-JIS」だ、という設定をしている?)

(※) MySQLに接続して「show variables like '%char%'」を実行した結果が以下になっている場合
character_set_clientutf8
character_set_connectionutf8
character_set_databaseutf8
character_set_filesystembinary
character_set_resultsutf8
character_set_serverutf8
character_set_systemutf8
character_sets_dir※環境により異なる




3.CSEからMySQLへ接続

CSEの「接続」プルダウンの中に「MySQL」という項目があるが、これは旧バージョンのMySQL用ではないかと思われる。
それは選ばず、「ODBC汎用」という項目を選択し、"1.ODBCデータソースの設定"で設定したデータソース名、ユーザ名、パスワードを入力すれば、接続が成功するはず。