end0tknr's kipple - web写経開発

太宰府天満宮の狛犬って、妙にカワイイ

colinuxのmysql5.1へConnector/ODBC 3.51で接続

以前、installしたcolinux環境へのwindows環境からodbc接続に関するメモです。

Connector/ODBC 5.1ではclient側のchar setを設定できない?

現在、Connector/ODBCには、ver.3.51とver.5.1があるようです。
今回、接続テストを行うdbは、CHARACTER SETがcp932である為、odbcでもcp932を設定したいところですが、ver.5.1の設定画面にはCHARACTER SETに関する項目がないようです。

また、cseからodbc接続後に「SET NAMES cp932」を実行しましたが、SET NAMES not allowed by driver と表示されたので、ver.3.51を使用しました。

SET NAMES cp932;
SQLを実行中です...
SQL実行中に以下のエラーが発生しました。
エラーコード:543  [MySQL][ODBC 5.1 Driver][mysqld-5.1.32-log]
  SET NAMES not allowed by driver
SQLステータス:37000

Connector/ODBC 3.51の入手とinstall

次のurlからConnector/ODBCを入手できますが、自体のinstallに特に難しい点はありません。

http://dev.mysql.com/downloads/

Connector/ODBC 3.51では、Character Setも選択可

Connector/ODBCのinstallの後は、startメニュー → 管理ツール からデータソース(ODBC)を起動し、ユーザーDSNタブの追加ボタンをクリックしてください。


データソースの新規作成が表示されるので、MySQL ODBC 3.51 Driverを選択すると、Connector/ODBC 3.51の設定画面が表示されます。

ここでloginタブにloginに必要な項目を入力すると、Connect OptionsタブにあるCharacter Setで一覧から選択できるようになるので、cp932を選択します。


cseで接続する際、DBMSODBC汎用を選択

今回の接続テストではクライアント側にcse ( Common SQL Environment )を使用していますが、接続する際、DBMSODBC汎用を選択して下さい。


もし、接続用のユーザを追加する場合は?

もし、odbc接続の専用ユーザを追加する場合は、次のようなSQLを発行してください。

mysql> grant all privileges on test_db.* to odbcuser@'%'
       identified by 'ナイショ';
Query OK, 0 rows affected (0.00 sec)

この例では、odbcuserさんに全てのip(%)からtest_dbにあるすべてのtable(*)に権限を与えています。