<<<back

MySQLについて 壱
はじめに
 日本でフリーのデータベース・サーバといえばPostgreSQLが支配的であり、MySQLは永遠の二番手という印象があります。
 例えば、@ITLinux Squareにおける第2回 読者調査結果発表(2000/12/12)によれば、

  • Web連携コミュニケーションでは、PostgreSQLの一人勝ち
  • Web連携業務システムでは、PostgreSQLとOracleがシェアを争う
だそうです。
 確かに、二年前はこんなもんでしょうが、日本語化が後発となってしまったMySQLも現在シェアを伸ばしつつあるようです。
 amazon.co.jpで検索するとPostgreSQLは19件、MySQLは10件の書籍が検索されました(ちなみにOracleは112件でした)(2002/10/20)。
※2004年8月20日現在、PostgreSQLは31件、MySQLは25件、Oracleは181件でした。

 ただ、メーリングリストの投稿を見る限り、両データベースのユーザは排他的ではなく、結構、重複しているようです(pgsql-jp/mysql-jp)。
 PostgreSQLとMySQL(あるいはOracleと)の比較はしばしば目にしますが(ex. 比較し難いもの、Linux DBMS: part 1/part 2/part 3)、誤解を恐れず言い切ってしまえば、機能豊富で高速なPostgreSQL、簡潔で超高速なMySQLという感じでしょうか。
 いんちきユーザの私にとってみれば、お汁粉と善哉程度の違いです。
 以前は、PostgreSQLはcygwin上でしか稼働しませんでしたが、現在では、まだ安定動作していないとはいえ、Postgre-SQL Windows-Nativeというありがたいものもあります。
※PostgreSQLはバージョン8.0からWindows版を公開するそうです。
PostgreSQL 8.0はWindows対応(C|NET Japan:2004/8/23)

 それでも、Windowsユーザにとっては、やはりMySQLの方が扱い易いと言えるでしょう。

MySQLのダウンロード
 MySQLはMySQLサイトからダウンロードします(Soft Agencyのミラーサイトはこちら)。
 MySQLだけでなく、MySQL-Max(トランザクション機能付きMySQL)とかMyODBC(他のアプリケーションとの接続用)とかその他諸々ありますが、とりあえずは、MySQLのみをダウンロードしましょう。
 パッチも後であてればいいです。
 2002年10月20日現在の最新版(安定版)はVersion 3.23.53です。
 頻繁にバージョン・アップされますので、できるだけ最新版を入手するようにしましょう。

 ところで、ダウンロードの前にMySQL Licensing Policyを読んでおきましょう。
 MySQLにはGPL(GNU General Public License)あるいはOSI(Open Sopurce Initiative) Licenseが適用されており、個人や非営利組織体において、(非営利)+(オープン・ソース)を保守し続ける限り、利用・改変・再頒布はフリーのようです。
 本当に素晴らしいことです。

 ここでは、Windows版をダウンロードします。
 カレント・バージョンのファイル名はmysql-3.23.53-win.zipです。
 zipファイルを適当な場所にダウンロードして、+Lhacaなどの圧縮・解凍ソフトで解凍しましょう。

MySQLのインストール
 まず、フォルダ内にあるSETUP.EXEをダブル・クリックしてインストール・シールドを立ち上げます(↓下図)。

 Next >をクリックし続けると勝手にインストールしてくれます。
 インストールするディレクトリをc:\mysql以外の場所にしたり、インストール内容をカスタマイズしたい場合は適当に設定を変更して下さい(↓下5図)。

 Finishをクリックすればインストールは完了です。

MySQLサーバの起動
 MySQLはデータベース・サーバとクライアントからなっています。
 したがって、サーバを起動しなければ何も始まりません。
 クライアント−サーバといっても、ここでは、ネットワーク経由のリモート・アクセスではなく、ローカル・マシン内でのやりとりについて解説していきます。

 通常のWindowsアプリケーションとは違って、インストールを完了しても、デスクトップにショートカット・アイコンを作成してくれる訳でも、スタート・メニューの中にMySQLを登録してくれる訳でもありません。
 インストール場所をデフォルトのc:\mysqlとした場合、MySQLのユーティリティ群は直下のc:\mysql\binの中にインストールされています。
 マイ コンピュータ→ローカル ディスク(C:)→mysql→binとたどっていけば、binディレクトリの内容が見られます(↓下図)。

 これらのexeファイルを使ってMySQLの操作を進めていく訳ですが、まず最初に使用するのは、サーバ本体であるmysqld-nt.exeです。
 9X系列(95, 98, me)のためにmysqld.exeというのもあり、Windows2000環境では問題なく作動しますが、NT系列(NT, 2000)ではmysqld-nt.exeの方を使いましょう。
 また、GUIでMySQLサーバを操作することのできるwinmysqladmin.exeもありますが、ここでは使いません。
 これ以降はWindowsのコマンド・プロンプトを立ち上げて、コマンド・ラインで処理を行います。
 スタート→プログラム(P)→アクセサリ→コマンド プロンプトで、コマンド・プロンプトを立ち上げます。
 デフォルトではCドライブのルート(C:\)にいますので、まず、cd mysql\binと入力してbinディレクトリに移動します。

Microsoft Windows 2000 [Version 5.00.2195]
(C) Copyright 1985-2000 Microsoft Corp.

C:\>cd mysql\bin[Enter Key]
C:\mysql\bin>

 ここで、MySQLサーバをWindowsのサービスとして起動・終了させるようにします。
 コマンドラインに

mysqld-nt --install

と入力すればOKです。
 NT系ではサービスに登録しておけば、マシンを起動すると同時にMySQLサービスを呼び出してくれるので便利です。
 というか、サービスとして起動されることを前提としているようです。
 また、自動的に呼び出されるのは困るという場合は、

mysqld-nt --install-manual

としておけば、MySQLサーバの起動は手動に切り替わります。
 ここでは、手動モードでサービスに登録しておきます。
 成功すればService successfully installed.と表示されます。

C:\mysql\bin>mysqld-nt --install-manual[Enter Key]
Service successfully installed.

C:\mysql\bin>

 本当にサービスに登録されたかどうかを確認してみましょう。
 スタート→設定(S)→コントロール パネル(C)→管理ツール→サービスとたどっていくと、サービス・ウィンドウが表示され、MySQLが登録されていることが分かります(↓下図)。

 ここでMySqlを右クリックして開始(S)を選択すると状態が開始となります(↓下2図)。

 一方、コマンド・プロンプトでサービスを開始・終了させるためには、netコマンドを使用します。
 開始のときは

net start mysql

終了のときは

net stop mysql

と入力します。
 もちろん、他のサービスであっても同様です。

C:\mysql\bin>net start mysql[Enter Key]
MySql サービスを開始します.
MySql サービスは正常に開始されました。

C:\mysql\bin>net stop mysql[Enter Key]
MySql サービスを停止中です.
MySql サービスは正常に停止されました。

C:\mysql\bin>

 また、サービスの登録を削除するには、

mysqld-nt --remove

と入力します。
 成功すればやはりService successfully removed.と表示されます。

C:\mysql\bin>mysqld-nt --remove[Enter Key]
Service successfully removed.

C:\mysql\bin>

 サービスとしてではなく、mysqld-nt.exeを直接起動する場合は、かならずオプションを指定して起動しなければなりません。
 mysqld-ntと入力しただけではMySQLサーバは起動しないので、

mysqld-nt --default-character-set=sjis(文字コードをsjisにして起動)

のように、何らかのオプションを付けます。
 また、mysqld-ntを直接起動した場合は、サービスは開始されていませんので、net stop mysqlとしてもMySQLサーバは停止しません。
 このときは、

mysqladmin shutdown

と入力します。
 このmysqladmin.exeはサーバを操作するためのユーティリティであり、他にもいろいろなことができます。

C:\mysql\bin>mysqladmin shutdown[Enter Key]

C:\mysql\bin>

 日本語(WindowsではShift JIS)を使えるようにするためには、起動時にオプションで指定することもできますが、その場合、起動のたびに逐一入力しなければならないので、面倒です。
 WINNTの直下か、システム・フォルダ(WINNT\System or WINNT\System32)の中にmy.iniというファイルを作成し、以下のように記述しておけば、自動的に文字コードが設定されます。

[mysqld]
default-character-set=sjis

 また、c:\mysql以外の場所にMYSQLをインストールした場合もこのファイルの中で明示的に指定しておく必要があります。
例えば、d:\mysqlにインストールしたならば、 [mysqld]
basedir=d:\mysql

 としておきます。

 さて、実際にサーバが稼働しているか否かを確認する方法はいくつかあります。
 標準的なのは、

mysqladmin ping

と入力して、サーバにpingを飛ばす方法です。
 サーバが作動していればmysqld is aliveと返してくれます。

C:\mysql\bin>mysqladmin ping[Enter Key]
mysqld-nt is alive

C:\mysql\bin>

 以下にこのページで解説したコマンドをまとめておきます。

操作内容 構文
サービスの登録 mysqld-nt --install-[option]
サービスの削除 mysqld-nt --remove
サービスの開始 net start mysql
サービスの停止 net stop mysql
mysqld-ntの起動 mysqld-nt --[option]
mysqld-ntの停止 mysqladmin shutdown
サーバ稼働の確認 mysqladmin ping