MySQL を使ってみる

SOFTWARE

なぜだか MSDE のインストールに失敗してしまうので、代わりに MySQL を入れてみることにしました。


ことはじめ

そもそもは、Microsoft 社の提供している MSDE というフリーのデータベースエンジンなるものを使用しようと思っていたのですが、いざ MSDE をインストールしようとしてみると、なぜだかアーカイブの展開後に、パスが不正ということでインストールできませんでした。

TMP 環境変数に登録されているパスをいろいろと変えて試してみたのですが、何度やっても一緒でした。

そこで、Windows 環境でも動くデータベースサーバを探してみたところ、MySQL というものが見つかりました。これは http://www.mysql.com/ にて提供されているようです。

みたところ、OLE DB ドライバはないようですが、 ODBC ドライバはあるようですのでとりあえずは問題ないでしょう。ほか、なにやら GUI ツールも用意されているような感じです。

 

とりあえず入れてみるという感じのお話なので、細かいことには触れていないので注意してください。

 

MySQL の導入

ダウンロード

とりあえず http://www.mysql.com/ へ接続して、次のものをダウンロードしてみました。

  • mysql-3.23.51-win.zip
  • myodbc-2.50.39-nt.zip
  • mysqlgui-win32-static-1.7.5-2.zip

 

MySQL 3.23.51 のインストール

まずは MySQL 本体のインストールをして見ます。

ダウンロードした mysql-3.23.51-win.zip を展開して、その中の SETUP.EXE を実行すると、インストールプログラムが起動されます。

 

Welcome

セットアッププログラムが起動しますので、<Next> を押して次へ進みます。

 

Information

なにやら注意事項やらが書いてあるようですが、いまひとつ飲み込めなかったため、とりあえず <Next> で進んでおきました。

 

Choose Destination Location

MySQL をインストールする場所を指定します。ディフォルトどおり "C:\mysql" を使用することにしましたので、そのまま <Next> を押して次へ進みます。

 

Setup Type

一般的なインストール (Typical) か最小構成のインストール (Compact) 、または必要な項目を選択するインストール (Custom) から選べます。

何かと目を通しておきたいので、今回は Custom を選択して次へ進むことにします。

 

Select Components

インストールする項目を選択できます。

  • The MySQL Servers
  • The MySQL clients and Maintenance Tools
  • The MySQL Documentation with different
  • Examples, Libraries, Includes and Script
  • The Great Tables and Core Files

後ろの方の文字がうまく読めなかったので間違っているかもしれませんけど、とりあえず上のような項目が選択できるようです。

今回は全部選択した状態にしておくことにします。

 

Setup Complete

すると必要なファイルがインストールされて、インストールは完了します。

 

MySQL のインストールが完了しても、スタートメニューには特になにも登録されないようです。なので、とりあえずインストールした先の C:\mysql フォルダを開いてみることにしました。

覗いてみると、MySqlManager.exe とか winmysqladmin.exe あたりが何か動かせそうな感じのするソフトウェアだったので、無謀にもとりあえず動かしてみました。

MySqlManager.exe の方はいまいち良くわからず…。そして winmysqladmin.exe を動かしてみると、なにやらパスワードなんかを聞かれたので、とりあえキャンセル…。

 

この winmysqladmin.exe は、タスクトレイに常駐して、MySQL サービスの起動や停止をコントロールするソフトウェアのようです。とりあえず、「サービス」 を確認してみると MySql という項目が登録されていて、それが起動状態になっているので、とりあえずはうまく行っているのでしょう…。

 

MySQLGUI 1.7.5 の導入

この MySQLGUI を導入すれば、直感的な操作ができるようになるのでしょうか…、ということで、早速インストールをしてみることにします。

 

ダウンロードしておいた mysqlgui-win32-static-1.7.5-2.zip を展開してみると、入っている実行可能ファイルは mysqlgui.exe というものだけのようです。

これしかないようなので、とりあえず実行してみることにします。

 

実行してみると、"Enter your password" とたずねられました。

とりあえず、パスワードを設定した覚えがないので、何も入力しないで進んでみることにします。すると、mysql というデータベース(?)へ接続することができました。

この MySQLGUI というソフトは、なんだか Microsoft SQL Server 7.0 に付属している 「クエリアナライザー」 が進化したものといった感じですね…。

 

MySQLGUI をいじってみる

いまいちどれをいじったらいいか良くわからないまま、とりあえずいろいろと散策してみました。

すると、Commands -> Administration -> Administrator Panel とたどってみると、なんだかいろいろな設定ができそうな管理ウィンドウが表示されました。

 

とりあえず、Database Create というボタンを押してみました。そして、データベース名の入力を促されたので、TempDB と入力してみると、どうやら TempDB というデータベースが作成されたようで、MySQLGUI の "mysql" の選択項目の部分に、新たに "TempDB" が追加されていました。

他、Set password ボタンから、管理権限である root のパスワードも設定することができました。

root にも、root@"%" と root@"localhost" の2種類が存在しているようです。

 

ユーザ情報

root@"%" と root@localhost との違いを調べてみると、どうやらどういった経路でアクセスしてきたかによるようです。

root@"localhost" は、localhost からアクセスしてきた root ユーザの場合、また root@"%" というのは、不特定のホストからアクセスしてきた root のようです。

実際に、127.0.0.1 (localhost) を指定して接続した場合と、192.168.0.1 (直接) を指定して接続した場合では、ちゃんと別々のパスワードを要求してくれました。

 

これらのユーザ情報は mysql データベースの user テーブルに格納されています。

このテーブルの構造は次のようになっているようです。詳しくは調べていませんので、曖昧な表現になっていたりします…。

host アクセスもとのホスト情報です。'localhost' ならば localhost からせつ属してきた場合、他 '%' ならば全てのホスト '192.168.0.%' ならば 192.168.0.* に所属するホストから。また、'%.ez-net.jp' ならば、ez-net.jp ドメインに所属する全てという感じになるようです。
user ユーザ名です。指定されていない場合には、全てのユーザが対称となるようです。
password ユーザのパスワードです。暗号化されているようで、INSERT 文などで設定するには PASSWORD() 関数を利用する必要があるようです。
select_priv SELECT 権限があるかどうかを示します。
insert_priv INSERT 権限があるかどうかを示します。
update_priv UPDATE 権限があるかどうかを示します。
delete_priv DELETE 権限があるかどうかを示します。
create_priv CREATE TABLE / CREATE DATABASE / CREATE INDEX 権限があるかどうかを示すようです。
drop_priv DROP DATABASE / DROP TABLE 権限があるかどうかを示すようです。
reload_priv リロード可能か…?
shutdown_priv サーバを停止可能か…?
process_priv ???
file_priv ファイルアクセスが可能か…??
grant_priv GRANT DATABASE / GRANT TABLE 権限があるかを示すようです。
references_priv リレーション作成が可能か…??
index_priv インデックス生成が可能か…??
alter_priv ALTER TABLE 権限があるかどうかを示すようです。

 

ここでや、GRANT 文を利用して、データベースやテーブルのアクセス権限を調整することができるようです。

 

MyODBC 2.50.39-NT の導入

続いて ODBC ドライバをインストールしてみることにします。

ダウンロードした myodbc-2.50.39-nt.zip を展開してその中の SETUP.EXE を実行すると、ODBC ドライバのインストールが始まります。

 

Microsoft ODBC Setup

<Continue> を選択して次へ進みます。

Install Drivers

インストールする ODBC ドライバの選択です。このプログラムでは MySQL しか選択肢がないので、それを選んで <OK> を押します。

Data Sources

ODBC データソースのサンプルなのでしょうか…。とりあえず不要と判断したので、<Close> で閉じてみました。

 

これでインストールは完了したようです。

ODBC データソースを登録しようと 「ODBC データソース」 を開いてみると、先ほど <Close> した Data Source の項目がしっかりと登録されていました…。

 

とりあえず、MySQL 用のデータソースを登録してみます。

ODBC データソースアドミニストレータの 「システム DSN」 から、「追加」 ボタンを押して、「データソースの新規作成」 ダイアログボックスを表示させます。

そこで、データソースのドライバとして "MySQL" を選択して 「完了」 ボタンを押します。

 

すると TDX mysql Driver default configuration という名前のダイアログボックスが現れますので、必要事項を記入します。

 

Windows DSN name MySQL
MySQL host [name or IP] localhost
MySQL database name TempDB
User root
Password xxxxxxx
Port [if not 3306]  
SQL command on connect  

このような感じでしょうか。

こうすることで、MySQL の TempDB が、Windows DSN name に設定した "MySQL" という名前の ODBC データベースとして登録されました。

 

日本語への対応について

日本語に対応させるためには、システムフォルダ内の my.ini ファイルを編集して、default-character-set で sjis を指定する必要があります。

[mysqld]

datadir=C:\\MySQL\\Data\\

default-character-set=sjis

MySQL はディフォルトでは latin1 の文字コードが採用されていて、'\' を含む SJIS コードが入力された場合には文字化けを起こしてしまうようです。

 

おわり…

調査としてはぜんぜん半端ですけど、とりあえず体験レポートは終わりです。

GUI ツールはちょっとした手助けに過ぎない感じがしましたので、この感じだとコマンドラインを使って全部やるのが理想かもしれないですね。

 

…、そしてしばらく使ってみた感想は、GUI に期待しなければまあまあ使いやすいような感じがしました。

けれど、現時点ではビューやストアドプロシージャを作ることができない仕様のようなので、そのあたりが個人的には少々気になります。

LEFT OUTER JOIN や RIGHT OUTER JOIN はサポートされているようなので、使い物にならないというわけではないので、ちょっとしたデータベースサーバとして使用するのなら、合格点(?) といった感じでした。

が、ほかにも ADODB を使って、AddNew による追加を行おうとするとどうもうまくいかないようです。普通に素の SQL 文を発行する分には大丈夫のようですが…。

予算に余裕がある場合は、SQL Server など、市販の有名なものを使ったほうが、後々の作業が楽になるような気がしました。