2005-05-21

MySQLサーバ Windows版の設定

本章では、MySQL 4.1.5から導入されたMySQL Server Instance Configuration Wizard(以下、サーバ設定ウィザードと呼ぶ)を使ってMySQLサーバの初期設定を行います。サーバ設定ウィザードはユーザが一連の質問に答える事によってサーバオプションファイル(my.ini)を作成します。

my.ini について

MySQL 4.1.5より古いバージョンでは、サーバオプションファイルは習慣的にmy.cnf またはmy.iniという名前で、c:\my.cnf または c:\Windows\my.iniにありましたが、サーバ設定ウィザードが作るオプションファイルは、MySQLサーバのインストールフォルダ下のmy.iniです。これは、オプションファイルと特定のMySQLサーバを結合する為です。

MySQLサーバはオプションファイル(my.ini)の場所を引数として受け取る事ができます。

--defaults-file="C:\Program Files\MySQL\MySQL Server 4.1\my.ini"

my.iniはテキストエディタで変更する事ができます。また、GUIクライアント(MySQL Administrator)でも変更できます。但し、 コマンドラインクライアント(mysql.exe)や mysqldump.exeなどのユーティリティは my.iniの場所が分からないので、これらのプログラムの設定には Windowsのシステムフォルダ(c:\Windowsなど)の中にmy.iniを作成する必要があります。

サーバ設定ウィザードの起動

サーバ設定ウィザードはMySQLのインストール終了時にインストーラから呼び出されますが、 スタートメニューから [MySQL][MySQL Server 4.1][MySQL Server Instance Config Wizard]で起動する事もできます。

サーバ設定ウィザードを起動します。

install08.gif

[Next>]ボタンを押します。

コンフィグレーションタイプの選択

install09.gif

[Detailed Configuration]

最適なサーバ設定を行う場合は、こちらを選択します。多くの質問がありますが詳細な設定ができます。本編ではこちらを選択します。

[Standard Configuration]

MySQLが初めてで、シングルユーザの開発マシンとしてサーバが必要な場合、こちらを選択します。こちらを選択すると、ウィザードは、サーバのサービス起動とrootユーザのセキュリティ設定以外を自動設定します。

サーバタイプの選択

install10.gif

3つのサーバタイプ(開発マシン/サーバマシン/MySQLサーバ専用マシン)が選択出来ます。選択に応じてメモリ、ディスク、CPUの使用が決定されます。本編では[Developer Machine]を選択します。

データベースの利用法

install11.gif

[Multifunctional Database]

InnoDBと MyISAMの両方のテーブルハンドラを有効にして、均等にサーバリソースを分割します。両方のテーブルハンドラを定期的に使用する場合のオプションです。

[Transactional Database Only]

InnoDBと MyISAMの両方のテーブルハンドラを有効にしますが、ほどんどのサーバリソースをInnoDBで使用します。InnoDBを使用しないユーザの為のオプションです。専らInnoDBを使用して、MyISAMの使用は最小量にする場合のオプションです。

[Non-Transactional Database Only]

InnoDBのテーブルハンドラを無効にして、全てのサーバリソースをMyISAMで使用します。InnoDBを使用しない場合のオプションです。

MySQLは幾つかのストレージエンジンをサポートします。ストレージエンジンにはトランザクションセーフなテーブルを扱うものと非トランザクションセーフなテーブルを扱うものがあります。

MyISAM

MyISAMは非トランザクションテーブルをハンドルするストレージエンジンで、ISAMの改良版です。MyISAMはデフォルトで MySQLサーバに含まれます。

InnoDB

InnoDBはトランザクションテーブルをハンドルするストレージエンジンです。MySQL 4.0以降、InnoDBはMySQLのバイナリディストリビューションにもデフォルトで含まれるようになりました。

どのストレージエンジンでテーブルを作成するかは、CREATE TABLE文のオプション(ENGINEまたはTYPE)で指定する事ができます。例えば、以下のように書きます。

CREATE TABLE t (i INT) ENGINE = INNODB;
CREATE TABLE t (i INT) TYPE = MyISAM;

ENGINEまたはTYPEオプションを省略した場合はデフォルトのストレージエンジンが使用されます。デフォルトのエンジンを変更するにはサーバスタートアップ時のオプションとして

mysqld --default-storage-engine=InnoDB (または --default-table-type=InnoDB)

を使用するか、または、サーバオプションファイル(my.ini)に

default-storage-engine=InnoDB

を設定します。どこにも指定がなければデフォルトのストレージエンジンはMyISAMになります。

InnoDBのテーブルスペース

install12.gif

InnoDBが使用するデータファイルの場所を設定します。既定の場所はMySQLサーバのインストールフォルダです。

同時接続数

install13.gif

MySQLサーバへの最大の同時接続数を設定します。サーバの用途に応じてサーバ設定ウィザードが決定しますが、手動設定もできます。

[Decision Support (DSS)/OLAP]

平均20の接続を想定し、最大の同時接続数を100に設定します

[Online Transaction Processing (OLTP)]

最大の同時接続数を500に設定します

[Manual Setting]

手動で設定する場合に選択します

DSS:意思決定支援システム OLAP:オンライン分析処理 OLTP: オンライントランザクション処理

ネットワーキングオプション

install14.gif

TCP/IPの「有効/無効」とサーバ接続で使用するポート番号を設定します。TCP/IPはデフォルトで有効です。無効にすると名前付きパイプのみが許可されます。本編ではMySQLサーバを既定のポート番号(3306)で使用します。

既定の文字セット

install15.gif

MySQLサーバのデフォルト文字セットを設定します。デフォルト文字セットは全てのデータベース、テーブル、カラムに適用されます。

[Standard Character Set]

デフォルト文字セットをLatin1に設定します

[Best Support For Multilingualism]

デフォルト文字セットをUTF8に設定します

[Manual Selected Default Character Set]

デフォルト文字セットを(sjisやujisなどに)手動で設定します

サービスオプション

install16.gif

[Install As Windows Service]をチェックし、MySQLサーバをWindowsのサービスとしてインストールします。また、[Launch the MySQL Server automatically]にチェックを入れて、OS起動時にMySQLサーバを自動起動するようにします。サービスとしてインストールすると、他のサービスと同様に、[マイコンピュータ][管理]の[サービス] からMySQLサーバの開始/停止ができる他、コマンドプロンプトからnetコマンドを使って制御する事もできます。

[サービスの開始]

C:\>net start MySQL

[サービスの停止]

C:\>net stop MySQL  

Windowsの環境変数(PATH)にMySQLサーバのbinフォルダを追加する場合は[Include Bin Directory in Windows Path]をチェックします。binフォルダの中にはMySQLのサーバやコマンドラインクライアントなどがあります。

MySQLサーバプログラム

Windows用のバイナリディストリビューションには幾つかのバージョンのMySQLサーバが含まれています。

mysqld.exeWindows9X用の標準MySQLサーバ
mysqld-max.exeWindows9X用の拡張MySQLサーバ
mysqld-nt.exeWindows NT/2000/XP用の標準MySQLサーバ
mysqld-max-nt.exeWindows NT/2000/XP用の拡張MySQLサーバ

MySQL4.0からはトランザクションテーブルをハンドルするInnoDBがデフォルトでWindows用のバイナリディストリビューションに含まれるようになりました。MySQLサーバと拡張MySQLサーバの違いは以下のURLを参照して下さい。

http://dev.mysql.com/doc/mysql/ja/mysqld-max.html

Windows サービスの手動による登録/削除

サービスの登録/削除を手動で行う場合は、コマンドプロンプトから以下を実行します。

[登録]

c:\>mysqld-nt --install サービス名 --defaults-file=my.iniのパス

[削除]

c:\>mysqld-nt --remove サービス名

拡張MySQLサーバを使用する場合は、mysqld-ntの代わりにmysqld-max-ntを使用します。サービス名を省略すると「MySQL」が仮定されます。MySQLのインストールフォルダによっては、サービスを登録する場合、

"C:\Program Files\MySQL\MySQL Server 4.1\bin\mysqld-nt" --install MySQL
 --defaults-file="C:\Program Files\MySQL\MySQL Server 4.1\my.ini"

の様に大変長いコマンドを入力しなければならない場合があります。 サービスの登録/削除は、後で説明するGUIクライアントツール(MySQL Administrator)のサービス設定モードを使用する方が簡単です。本編「MySQL Administrator」を参照して下さい。

セキュリティオプション

install17.gif

rootユーザのパスワードを設定する場合は、[Modify Security Settings]をチェックして望みのパスワードを入力します。ネットワークからのrootログインを許す場合は、[Enable root access from remote machines]にチェックを入れます。

匿名のユーザアカウントを作成するには、[Create An Anonymous Account]にチェックを入れます。セキュリティ面からも匿名アカウントの作成は推奨できません。

確認画面

install18.gif

[Execute]ボタンを押すと一連のサーバ設定が実行されます。

サーバ設定ウィザードは選択された設定オプションをmy.iniに書き込み、最終的なmy.iniの保存場所を画面に表示します。MySQLサーバをサービスとして起動する事を選択をした場合は、サービスを登録してMySQLサーバを起動します。また、rootユーザのパスワードを設定する事を選択した場合は、サーバに接続しパスワードを設定します。 全ての設定が終わると次の画面になります。

install19.gif

MySQLサーバの設定が終わりました。[Finish]ボタンを押して下さい。

インストール後の確認

これまでの操作でMySQL 4.1 Windows版がインストールできました。正しくインストールできているかを確認します。まず、[マイコンピュータ][管理]から[サービス]を開いて見るとMySQLサービスが見つかります。[プロパティ]を参照すると、[実行ファイルのパス]が以下のようになっています。

"C:\Program Files\MySQL\MySQL Server 4.1\bin\mysqld-nt"
 --defaults-file="C:\Program Files\MySQL\MySQL Server 4.1\my.ini" MySQL

また、環境変数(PATH)にMySQLのパスを追加した場合は、コマンドプロンプトを起動して確認します。

C:\>set path
Path=C:\WINDOWS\system32;C:\WINDOWS;C:\Program Files\MySQL\MySQL Server 4.1\bin

次に、コマンドプロンプトでnetstatコマンドを実行してMySQLサーバの起動を確認します。(netstatコマンドの-aオプションはリスニングポートの表示を、-oオプションはプロセスIDの表示を意味します)

C:\>netstat -ao | find "3306"
  TCP    ZEUS:3306              ZEUS:0                 LISTENING       692

ローカルマシン(この例の場合はZEUS)上でTCPポート3306番をリスニングしているプログラム(PID:692)がある事が分かります。プロプラムのPIDをWindowsタスクマネージャなどで参照すると、そのプログラムはmysqld-nt.exeである事が分かります。

最後に、MySQLサーバにコマンドプロンプトからmysqladmin コマンドを使ってpingを打って見ましょう。mysqladmin コマンドはMySQL付属のMySQL管理用コマンドユーティリティです。以下のコマンドを入力するとrootユーザのパスワードを尋ねられます。パスワード入力後、「mysqld is alive」と表示されたらOKです。

C:\>mysqladmin ping -u root -p
Enter password: *****
mysqld is alive


最終更新のRSS Last-modified: Fri, 14 Oct 2005 07:47:17 JST (4417d)