ウインドウズ版MySQLのインストール
この講座では、MySQLを使ってSQLの使い方を解説していきますので、まだMySQLをインストールしていない場合は、このステップを参考にしてインストールしてみてください。
MySQLのインストール準備
MySQLインストールファイルのダウンロード
MySQLのインストールファイルは、MySQL ABサイトのMySQL Downloadsページから入手することができます。
http://dev.mysql.com/downloads/
MySQLはオープンソースRDBMSですが、サポートを受けられるエンタープライズ版(有償)が登場しました。従来のものはコミュニティ版(無償)と呼ばれています。
インストールファイルの解凍
MySQL ABサイトからダウンロードしたMySQLインストールファイルは、ZIP形式で圧縮されています。Vista、XPでしたら、解凍用のアプリケーションをインストールしなくても、右クリックするとメニューが表示され、そこから[すべて展開]という命令文を選択することができます。この命令文を選択すると、インストール用の実行ファイルが解凍されます。
XP以前のウインドウズをご利用の場合は、ソフトウエアダウンロードサイトのVECTORから+Lhacaなどの解凍用アプリケーションをダウンロードします。
VECTORソフトウエアダウンロードサイト
http://www.vector.co.jp/
インストーラでMySQLをインストールする
MySQLのインストールファイルはインストレーションウィザードとMySQL設定ウィザードが起動するようになっています。インストレーションウィザードでMySQLがインストールされると、自動的にMySQL設定ウィザードがスタートし、MySQLの設定が行われます。
インストールを始めるには、解凍した後に作成されるsetup.exeを実行します。
インストールの種類の選択
MySQLのインストールウィザードには標準、完全、カスタムの3種類のインストール方法があります。標準のインストールではMySQLサーバ、mysqlコマンドラインクライアント、コマンドラインユーティリティをインストールします。完全なインストールはインストール パッケージに含まれるすべてのコンポーネントをインストールします。カスタムインストールではインスロールするパッケージが選択できます。
ここでは、標準インストールを選択します。[Typical]というラベルのラジオボタンを選択し、[Next]ボタンをクリックします。後は[Next]ボタンを押していくとインストールが完了します。
MySQL設定ウィザード
MySQLのインストールが終了すると、[Configure the MySQL Server now]というチェックボックスがあるダイアログが表示されます。このチェックボックスはMySQLの設定ウィザードを立ち上げためのもので、すぐに設定する場合は[Configure the MySQL Server now]のチェックをはずさずに[Finish]ボタンをクリックします。
設定の種類の選択
最初に設定するのは、設定の種類です。設定の種類には、詳細設定と、標準設定があります。デフォルトでは詳細設定がチェックされています。
ここではデフォルトの詳細設定で進めていきますが、通常は標準設定の[Standard Configuration]で問題ありません。
サーバタイプの選択
インストールするサーバタイプを開発用、サーバ用、専用MySQLサーバの3種類の中から選択します。サーバの種類によって、MySQL設定ウイザードのメモリ、ディスク、プロセッサに関する決定に影響を与えます。
- 開発用マシン
- MySQLを開発する際など、個人の使用目的のみに使用する場合の設定です。MySQLサーバは、最低限のシステムリソース向けに設定されます。
- サーバ マシン
- MySQLサーバがウェブサーバやメールサービスなど他のサーバアプリケーションと一緒に動作している場合の設定です。MySQLサーバはシステムリソースを平均的に消費するように設定されます。
- 専用MySQLサーバマシン
- MySQLサーバのみを運用する場合の設定です。MySQLサーバは利用で可能な全てのシステムリソースを使用する設定になります。
データベースの使用
MySQLにはトランザクション機能を持ったInnoDBと、非トランザクションデータベースのMyISAMという2種類のデータベースがあります。データベース利用ダイアログで、InnoDBストレージ エンジンを利用できるか、何パーセントのサーバリソースがInnoDBに利用できるかを決定します。
- 多機能データベース
- このオプションはInnoDBとMyISAMストレージエンジン両方を有効にし、リソースを両方に等分します。両方のストレージエンジンを使用するユーザーに適しています。
- トランザクションデータベースのみ
- このオプションはInnoDBとMyISAMストレージエンジンの両方を有効にしますが、殆どのサーバリソースはInnoDBストレージエンジンが使用します。このオプションはInnoDBを中心に使用するユーザーに適しています。
- 非-トランザクションデータベースのみ
- このオプションはInnoDBストレージエンジンを無効にし、全てのサーバリソースをMyISAMストレージエンジンに割り振ります。このオプションはMyISAMしか使用しないユーザーに適しています。
InnoDBテーブルスペース
InnoDBテーブルスペースファイルをMySQLサーバのデータディレクトリ以外のロケーションに配置したいときの設定です。システムが高容量、もしくはRAIDストレージエンジンを利用できる場合に適しています。
InnoDBテーブルスペースファイルのロケーションを変更するには、ドライブ用のドロップダウンリストから新しいドライブを選択し、パス用のドロップダウンリストから新しいパスを選択します。もしくは、[...]ボタンをクリックしてフォルダツリーから選択します。
同時接続
同時接続数ダイアログでは、同時接続数の制限を設定します。接続数が増えれば増えた分がサーバのリソースを圧迫するので、MySQLサーバへの同時接続数を適切に制限することが重要です。
- デシジョン サポート (DSS)/OLAP
- 接続の最大数を100、平均の20の同時接続を想定します。一般的なサーバの場合はこのオプションを選択します。
- オンライン トランザクション プロセスシング (OLTP)
- 同時接続の最大数を500に設定します。サーバが多数の同時接続を必要とする場合にこのオプションを選択します。
- 手動の設定
- サーバへの最大の同時接続数を手動で設定する場合はこのオプションを選択します。[Concurrent connections] に接続数を選択するか、直接入力します。
ネットワークと厳格なモードオプション
[Enable TCP/IP Networking] チェックボックスでTCP/IP ネットワークの有効/無効を設定します。有効にする場合はチェックボックスをチェックします。[Port Number]ドロップダウンボックスでは、MySQLサーバの接続ポート番号を選択するか、直接数値を入力します。
[Enable Strict Mode]チェックボックスで、SQLモードをSQL標準のトラディショナルモードにするか、MySQL旧式の記述方法も許容するかを選択します。チェックボックスをチェックすると、SQL標準のトラディショナルモードになります。特別な理由が無ければ、デフォルトのトラディショナルモードにします。
サービスオプション
Windows NTベースのプラットフォームの場合、MySQLサーバはWindowsのサービスとしてインストールできます。サービスでインストールすると、MySQLサーバはシステムの起動時に自動的に起動されます。
[Install As Windows Service]のチェックをはずすと、Windowsサービスとしてインストールされません。[Service Name]のドロップダウンリストで、サービス名を変更できます。
[Launch the MySQL Server automatically]チェックボックスは、MySQLサーバを自動で起動させるチェックボックスです。このチェックをはずすと、MySQLサーバは自動的に起動しなくなります。
セキュリティオプション
rootパスワードを設定します。[Modify Security Settings]のチェックをはずすと、rootのパスワードを設定しませんが、セキュリティ上問題があるので、お勧めできません。
rootパスワードを設定するには、任意のパスワードを[New root password]のテキストボックスに入力します。入力間違いが無いかチェックするために、同じ内容のパスワードを[Confirm]のテキストボックスにも入力します。
匿名のユーザーアカウントを作成するには、[Create An Anonymous Account]チェックボックスをチェックします。ただし、匿名アカウントを許可するとサーバのセキュリティが脆弱になるので、お勧めできません。
設定完了後
以上で設定が完了し、選択確認のダイアログが表示されます。問題なければ[Execute]ボタンをクリックします。前のダイアログに戻るには、[Back]ボタン、MySQL設定ウイザードを設定しないで終了するには、[Cancel]ボタンをクリックします。
インストールウィザードと設定ウィザードが完了後、スタートメニューに[MySQL]という名称でMySQLが登録されています。その中にはMySQL5.0であれば[MySQL Server 5.0]というフォルダがあり、以下のエントリーが登録されています。
- MySQL Command Line Client
- MySQLに接続するためのコマンドラインクライアントです。rootユーザーとして接続が設定されているので、接続後にrootユーザのパスワードを求められます。
- MySQL Server Instance Config Wizard
- MySQL設定ウィザードへのショートカットです。このショートカットでサーバの設定を行います。
- MySQL Manual
- MySQLサーバの説明資料へのリンクです。
ファイルシステムへの変更
MySQLはデフォルトで C:\Program Files\MySQL を共通ディレクトリとして、そこにたとえばMySQLサーバのバージョンが5.0であれば[MySQL Server 5.0]というフォルダが作成され、iniファイルや本体がインストールされます。
MySQLのインストール後の起動と設定
MySQLの設定
MySQLの環境設定ファイルはデフォルトで C:\Program Files\MySQL\MySQL Server [バージョン番号] ディレクトリにmy.iniというファイル名でインストールされます。my.iniファイルはテキストファイルなので、お使いのテキストエディタで開くことができます。
my.iniファイル
[mysqld]
port=3307
[mysql]
default-character-set=latin1
オプションファイルの書式
- # コメント
- コメントはシャープ( # )か、セミコロン( ; )文字で始めます。
- [グループ名]
- グループ宣言です。 ブラケット( [ ] )でグループ名を囲みます。この宣言の後の行でグループのオプションを設定します。このセクションの範囲は、他のグループ宣言の行が来るか、ファイルの最後に来るまでです。
- オプション名
- コマンドラインでクライアントプログラムを実行する際のオプションの書式、--オプション名 と同様です。
mysqladmin --version
-> mysqladmin Ver 8.41 Distrib 4.1.12, for pc-linux-gnu on i686
- オプション名=値
- コマンドラインでクライアントプログラムを実行する際のオプションの書式、--オプション名=値 と同様です。
mysqladmin --user=mysql_user
- [client]
- [client]グループは、mysqldを除く全てのMySQLクライアントに対してオプションを定義することができます。たとえば、サーバに接続する際のパスワードなどを設定できます。このグループを設定する際は、全てのクライアントプログラムで有効なオプションだけを使ってください。特定のクライアントプログラムしか認識できないオプションを設定すると、そのほかのクライアントプログラムでエラーが発生します。
[client]
password="my_password"
エスケープシーケンス
MySQLには、『エスケープシーケンス』と呼ばれる、通常ディスプレイに表示されない文字や、紛らわしい文字を区別する為の特殊な文字が用意されています。たとえば、文字列の中で改行を表現したい場合は、「\n」という文字列を使います。値として、\b、\t、\n、\r、\\ 、\sのエスケープシーケンスが使用できます。
注意したいのは、UNIX系OSで使われるバックスラッシュは、Windowsだと2重のスラッシュを使います。
UNIX系OSでbasedirをルート直下のmysqlに設定するには下記のようになります。
[mysqld]
basedir=/mysql
WindowsでEドライブの直下にmysqlディレクトリを設定するには下記のようになります。
[mysqld]
basedir=E:\\mysql
my.iniで文字コードを設定する
MySQLで日本語を使う際は、my.iniに文字コードを指定します。たとえば、文字コードがUTF8の場合は下記のようにmy.iniに設定しておくと良いでしょう。
[client]
default-character-set=utf8
[mysqld]
default-character-set=utf8
init-connect=SET NAMES utf8
[mysql]
default-character-set=utf8
my.iniの書き換えが済んだら、mysqlクライアントコマンド起動して設定が反映されているか確認します。
mysql -u root -p
Enter password: ******
mysqlクライアントコマンドが起動したら、設定が反映されているか下記のコマンドを発行して確認します。
SHOW VARIABLES LIKE 'character\_set\_%';
-> +--------------------------+-------+
-> | Variable_name | Value |
-> +--------------------------+-------+
-> | character_set_client | utf8 |
-> | character_set_connection | utf8 |
-> | character_set_database | utf8 |
-> | character_set_results | utf8 |
-> | character_set_server | utf8 |
-> | character_set_system | utf8 |
-> +--------------------------+-------+
MySQLへの接続
MySQLへの接続は、スタートメニューから[MySQL]-[MySQL Server バージョン番号]のMySQL Command Line Clientショートカットを選択します。MySQL Command Line Clientはrootで接続するので、[Enter password:] の後にrootのパスワードを入力してログインします。
[mysql>]という行が出力されたらログイン成功です。
ためしに、現在登録されているデータベースを表示させてみましょう。
show databases;
> information_schema
> mysql
> test
information_schemaとmysqlは設定関連のデータベースです。testはテスト用に作成されたデータベースで、中身は空です。ここで任意のテーブルを定義して、SQLコマンドをテストしたり、パフォーマンスチェックを行ったりします。
MySQLの起動と停止
MySQLを起動させる
MySQLをWindowsサービスとしてインストールしている場合、MySQLの起動と停止はコントロールパネルから行うことができます。Vistaであれば、スタートメニューからコントロールパネルを開き、[システムとメンテナンス]-[管理ツール]-[サービス]を選択します。コントロールパネルがクラシック表示になっている場合は、[管理ツール]-[サービス]を選択します。
サービスウインドウからMySQLを選択すると、MySQLがすでに起動している場合は[サービスの停止]、[サービスの一時停止]、[サービスの再起動]が選択できます。my.iniを変更したときなどは、[サービスの再起動]を使って設定ファイルを再読み込みさせる必要があります。
サービスが停止しているときは[サービスの開始]が選択できます。
DBIパッケージのインストール
PerlからMySQLにアクセスするにはDBアクセス用のパッケージをインストールする必要があります。
コマンドラインクライアントを開いて以下に示す命令文を実行します。
※以下の命令文を実行するためには、C:\Perl\binにパスを通す必要があります。
C:>ppm
PPM interactive shell (2.1) - type 'help' for available commands.
DBIパッケージをインストールします。
PPM> install DBI
続いてDBD-mysqlパッケージをインストールします。
PPM> install DBD-mysql
上記でインストールできない場合は、下記URLからDBI.zipとDBD-Mysql.zipをダウンロードします。
http://www.activestate.com/PPMPackages/zips/6xx-builds-only/(ActivePerl Build 6xx用)
上記でダウンロードした二つの zipファイルを例えば C:\temp\dbi と C:\temp\dbd-mysql にディレクトリ付で解凍し、カレントディレクトリをそれぞれ以下のように移動後、ppm 命令文を実行します。
C:\temp\dbi> ppm install DBI.ppd
C:\temp\dbd-mysql> ppm install DBD-Mysql.ppd
MyODBCドライバをインストールしてODBC経由でMySQLサーバに接続することもできます。下記のプログラムを実行すると、自動的にMyODBCドライバがインストールされます。
use DBI;
$dbh= DBI->connect("DBI:ODBC:$dsn","$user","$password") ||
die "Got error $DBI::errstr when connecting to $dsn\n";