CSE ( common sql environment )

スポンサーリンク

CSEとは

CSEとは、2001年に公開されたデータベース用クライアントツールです。非常に古くから使用されているツールかつ安定しているため、今でも使用する人がいます。ただし、近年では開発が停滞傾向にあり、新しいバージョンのRDBMS接続や64bitマシン環境では、かなりの苦戦を強いられるでしょう。

このページでは、CSEを用いてMySQLに接続する方法について説明します。

CSE download

CSE公式サイト”http://www.hi-ho.ne.jp/tsumiki/”へアクセスし、”ダウンロード”リンクを押下した後、適当なファイルをダウンロードします。

mysql_cse_download_001

CSEは特にインストール作業は不要で、展開後にexeファイルを実行するだけで動作させる事ができます。

CSE MySQL 接続方法について

CSEでMySQLへ接続する方法は、ODBC接続する方法とlibmysql.dllを使用する方法の2通りが存在します。このページでは両方の方法を説明しますが、明らかに手間が少なくお勧めできるのはODBC接続です。

CSE MySQL接続 – ODBC

CSE MySQL接続 – ODBC ドライバーのダウンロード

32bit版のMySQL ODBCがインストールされていない場合は、ODBCのダウンロード/インストールを行います。http://dev.mysql.comにアクセスし、”Downloads”, “Community”の順で押下します。

mysql_download_odbc_001

“MySQL Connector”を押下します。

mysql_download_odbc_002

”Connector/ODBC”を押下します。

mysql_download_odbc_003

現時点(2014年07月)ではCSEは32bitのみ対応しています。そのため、64bit PCであっても32bit版のODBCをダウンロードして下さい。

mysql_download_odbc_004

○racle様にSing Upしろと言われますが、丁重に”No thanks, just start my download”とお断りしましょう。”No thanks, just start my download”を押下すると、MSI (インストーラー) ファイルのダウンロードが開始されます。

mysql_download_odbc_005

CSE MySQL接続 – ODBC インストール

ダウンロードしたMSI(インストーラー)ファイルをダブルクリックし、インストーラーを起動させます。

“Next”を押下します。

mysql_install_odbc_001

“I Accept the terms in the license agreement”を選択し、”Next”を押下します。

mysql_install_odbc_002

”Typical”を選択し、”Next”を押下します。

mysql_install_odbc_003

“Install”を押下し、インストールを実行します。

mysql_install_odbc_004

CSE MySQL接続 – ODBC データソースの設定 32bit PCの場合

32bit PCの環境において、ODBC データソースを用いてMySQL接続する方法について説明します。なお、以下はWindows7の場合の設定手順です。コントロールパネルの操作は、Windowsのバージョンによって若干の差異がある事をご了承ください。

“コントロールパネル”, “システムとセキュリティ”, “管理ツール”の順に押下します。

mysql_configure_odbc_64bit_001

“データソース (ODBC)”をダブルクリックし、”ODBC データソース アドミニストレーター”を起動させます。

mysql_configure_odbc_64bit_002

“ODBC データソースアドミニストレータ”の画面において、”ユーザ DSN”タブの”追加”を押下します。

mysql_configure_odbc_64bit_003

“MySQL ODBC 5.3 Unicode Driver”を選択し、”完了”を押下します。ANSIは2バイト文字(例 : 日本語)の取り扱い時にトラブルにつながるのでお勧めしません。

mysql_configure_odbc_64bit_004

接続情報を入力し”Test”を押下します。テスト接続に成功すると”Connection Successful”と表示され、”Database”欄にデフォルトで接続するデータベースをプルダウンで選べるようになります。

テスト接続に成功しましたら、”OK”を押下します。

mysql_configure_odbc_64bit_005

“OK”を押下します。

mysql_configure_odbc_64bit_006

CSE MySQL接続 – ODBC データソースの設定 64bit PCの場合

32bit ODBCデータソースの設定はやや特殊です。

コントロールパネルからODBCの設定を行うと64bit版の”ODBC データソース アドミニストレータ”が起動されますが、実は32bit版の”ODBC データソース アドミニストレータ”も存在します。32bit版, 64bin版 それぞの”ODBC データソース アドミニストレータ”のファイルパスは以下の通りです。

[table “22” not found /]

環境変数%WINDIR%はOSのバージョンによって変わる可能性がありますが、Windows7の場合は”C:\Windows\SysWOW64\odbcad32.exe”が32bit版の”ODBC データソース アドミニストレータ”になります。”odbcad32.exe“をダブルクリックして下さい。

mysql_configure_odbc_32bit_002

“ODBC データソースアドミニストレータ”の画面において、”ユーザ DSN”タブの”追加”を押下します。

mysql_configure_odbc_32bit_003

“MySQL ODBC 5.4 ANSI Driver”または”MySQL ODBC 5.4 Unicode Driver”を選択し、”完了”を押下します。

mysql_configure_odbc_32bit_004

接続情報を入力し”Test”を押下します。テスト接続に成功すると”Connection Successful”と表示され、”Database”欄にデフォルトで接続するデータベースをプルダウンで選べるようになります。

テスト接続に成功しましたら、”OK”を押下します。

mysql_configure_odbc_32bit_005

“OK”を押下します。

mysql_configure_odbc_32bit_006

CSE MySQL接続 – ODBC 接続

CSEにて、ODBCを用いたデータベース接続方法について説明します。

CSE.exeをダブルクリックで実行します。”データベース”, “接続”の順で押下し、接続メニューを表示させます。DBMSは”ODBC汎用”を選択し、適当なデータソース, ユーザ名, パスワードを入力します。

mysql_cse_odbc_001

”MySQL version X.X.XXに接続されました”とのメッセージから、MySQLに接続された事を確認します。

mysql_cse_odbc_002

なお、64bit ODBCドライバーを用いたデータソースを使用すると、以下のようなエラーメッセージが表示されます。今後の64bit対応に期待しましょう。

アプリケーション実行中に以下のエラーが発生しました。

エラー内容 : 
データベース接続時にエラーが発生しました。

DBエラー詳細 : 
エラーコード : 0 [Microsoft][ODBC Driver Manager] 指定された DSN
には、ドライバーとアプリケーションとのアーキテクチャの不一致が
含まれています。

mysql_cse_odbc_003

CSE MySQL接続 – libmysql.dll

CSE MySQL接続 – libmysql.dll エラーメッセージの確認

おそらく多くの人がはまるエラーメッセージは以下であると思います。このlibmysql.dllの対応方法について説明します。

アプリケーション実行中に以下のエラーが発生しました。

エラー内容 : 
データベース処理用ダイナミックリンクライブラリをロード時にエラーが発生しました。

DBエラー詳細 : 
「libmysql.dll」ロード時にエラーが発生しました。

mysql_cse_libmysql_001

CSE MySQL接続 – libmysql.dllのダウンロード

libmysql接続で一番苦戦するのは、libmysql.dllのダウンロードであると思います。CSE開発元”つみきWEB”をよく見ると書いてある事なのですが、対応しているクライアントdllはwinclients-3 22 28のみです。このdllを入手するのに皆様お困りと思いますので、以下にdllのコピーを配置します。ご自由にダウンロード下さい。

libmySQL.dllのダウンロード

ダウンロードしたdllファイルの置き場所は、CSE.exeと同一のディレクトリに配置して下さい。他の記事を見ると、C:\Windows\System32等の場所を選択する方もいますが、Windows配下に置くと全システムに影響を及ぼしてしまうため、お勧めできません。

mysql_cse_libmysql_002

CSE MySQL接続 – libmysql.dll – old password 対応 (MySQL 5.6以降のみ)

CSE MySQL接続 – libmysql.dll – old password とは

libmysql.dllによる接続は非常に面倒です。libmysql.dllのダウンロードに成功したとしても、次は以下のようなold passwordのエラーメッセージ悩まされるでしょう。

アプリケーション実行中に以下のエラーが発生しました。

エラー内容 : 
データベース処理用ダイナミックリンクライブラリをロード時にエラーが発生しました。

DBエラー詳細 : 
ERROR 1251 : Client does not support authentication protocol
requested by server; consider upgrading MySQL client

mysql_cse_libmysql_003

さかのぼる事MySQL 4.1の仕様変更になりますが、パスワードのハッシュ値が16バイトから41バイトに強化されました。16バイトのパスワードをOLD PASSWORDと呼び、41バイトのパスワードをNEW PASSWORDと呼びます。

MySQL 5.6以降は、デフォルト設定でOLD PASSWORDを拒否します。一方、CSEはOLD PASSWORDのみをサポートします。ですので、MySQLサーバ側でOLD PASSWORDを許可するように設定変更する必要があります。

CSE MySQL接続 – libmysql.dll – old password 許可 ( サーバ側 )

設定ファイルmy.cnf ( Windows版の場合はmy.ini ) のmysqldセクションに”old_passwords=1”を加筆し、OLD PASSWORDを許可するようにします。 ( my.iniは多くの場合は、C:\ProgramData\MySQL\MySQL Server 5.6\my.iniに配置されています。もし、my.iniが見つからない場合は、MySQL インストール手順 Windowsの場合を参照下さい。)

--- my.cnf.bak  2014-07-25 22:13:07.693787624 +0900
+++ my.cnf      2014-07-25 22:13:14.146785619 +0900
@@ -13,6 +13,7 @@
 long_query_time=0.1
 slow_query_log_file=/var/log/mysqld-slow.log
 log-queries-not-using-indexes
+old_passwords=1

設定反映のために再起動を行います (Windows版の場合は、サービスコンソールから再起動を行います)。

# /etc/init.d/mysql restart

再起動が行えない環境の場合は、mysqlのコンソール上で”set old_passwords=1 ;”と入力します。この操作により、再起動なしで設定を変更する事ができます。ただし、mysql起動時にmy.cnf (my.ini)が読み込まれてしまうので、設定ファイルの変更も忘れずに行ってください。

mysql> set old_passwords=1 ;
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like "old_passwords" ;
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| old_passwords | 1     |
+---------------+-------+
1 row in set (0.00 sec)

mysql>
CSE MySQL接続 – libmysql.dll – old password 設定

old passwordを許可しても、old passwordが設定されているわけではありません。mysqlデータベースのuserテーブルを確認すると、41バイトのNEW PASSWORDが設定されている事が分かります。

mysql> select user, password, host from mysql.user ;
+------+-------------------------------------------+-----------+
| user | password                                  | host      |
+------+-------------------------------------------+-----------+
| root | *927B6655E46CDA222B802C7FE8407F8C2F0E7BDE | localhost |
| root | *927B6655E46CDA222B802C7FE8407F8C2F0E7BDE | 127.0.0.1 |
| root | *927B6655E46CDA222B802C7FE8407F8C2F0E7BDE | ::1       |
+------+-------------------------------------------+-----------+
3 rows in set (0.00 sec)

mysql>

password函数を用いて、14バイトのパスワードのハッシュ値をpassword列に挿入します。なお、パスワードとユーザ名は適宜変更して下さい。また、flush privilegesによる設定反映も、念のため行った方が無難です。

mysql> update mysql.user set password = password('password') where user = 'root'
 ;
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3  Changed: 3  Warnings: 0

mysql> flush privileges ;
Query OK, 0 rows affected (0.00 sec)

mysql>

mysqlデータベースのuserテーブルより、14バイトのパスワードが設定された事を確認します。

mysql>  select user, password, host from mysql.user ;
+------+------------------+-----------+
| user | password         | host      |
+------+------------------+-----------+
| root | 5d2e19393cc5ef67 | localhost |
| root | 5d2e19393cc5ef67 | 127.0.0.1 |
| root | 5d2e19393cc5ef67 | ::1       |
+------+------------------+-----------+
3 rows in set (0.00 sec)

mysql>
CSE MySQL接続 – libmysql.dll – secure_auth

OLD PASSWORDの許可設定はクライアント側にも必要です。CSEが出力するエラーメッセージでは分かりづらいのですが、mysql clinetを使用した接続を試みると以下のようにsecure_authと明確なエラーメッセージが出力されます。

C:\Program Files\MySQL\MySQL Server 5.6\bin>mysql -uroot -p
Enter password: ******
ERROR 2049 (HY000): Connection using old (pre-4.1.1) authentication protocol ref
used (client option 'secure_auth' enabled)

C:\Program Files\MySQL\MySQL Server 5.6\bin>

このエラーに対応するには、–skip-secure-authオプションの付与が必要となります。以下のようなmy.iniファイルを作成し、CSEと同一のディレクトリに配置させます。

[client]
skip-secure-auth

mysql_cse_libmysql_004

CSE MySQL接続 – libmysql.dll 接続

CSEにて、libmysql.dllを用いたデータベース接続方法について説明します。

CSE.exeをダブルクリックで実行します。”データベース”, “接続”の順で押下し、接続メニューを表示させます。DBMSは”MySQL”を選択し、ユーザ名, パスワードを入力します。

mysql_cse_libmysql_005

”MySQL version X.X.XXに接続されました”とのメッセージから、MySQLに接続された事を確認します。

mysql_cse_libmysql_006

タイトルとURLをコピーしました