MySQL マニュアル
インストール環境構築 for Windows, LinuxMySQL のインストールから環境設定まで

1.MySQL とはなにか？
2.インストール
3.環境設定・InnoDB・MyISAM

4.サービスの設定
5.MySQL 起動終了
6.Linux 環境下での LAMP 構築
・MySQL のインストール状況の確認
・MySQL のインストール
・インストール後の設定・起動

11.MySQL とはなにか？
MySQL とは、ANSI／ISO の SQL に準拠した RDBMS（リレーショナルデータベース管理システム）です。現在は、サン・マイクロシステムズが開発をしております。特徴として、機能面では PostgreSQL と比べやや劣りますがデータの読み出し（SELECT 文）で他のデータベースより優れた実行速度をもっています。Web 開発では SELECT文を多用することがあるので処理のパフォーマンスをあげる目的で使用されることが多いです。最近では、UNIX互換の OS である Linux、Web サーバーの Apache、開発言語の PHP と組み合わせて LAMP（ランプ）と呼ばれる開発環境があり、Linux の代わりに Windows を使う WAMP（ザンプ）と呼ばれる開発環境も広まりつつあります。
他の代表的な RDBMS としては、オープンソースで開発が進められている PostgreSQL（ポストグレスキューエルまたは、ポスグレ）、IBM が開発する DB２、Oracle が開発する Oracle、Microsoft が開発する Microsoft SQL
Server などがあります。RDBMS の種類はたくさんありますが、基本的な SQL 文の書き方は統一されています。

MySQL の主な特徴は、以下のとおりです 動作環境UNIX、Linux、Windows、Mac OS X などで動作可能
 ライセンス形態
基本的に無償の GNU GPL ライセンスか商用ライセンスのどちらかを選択します トランザクション
ロックなしでの読み取り一貫性、行ロック、Read Uncommitted、Read Committed、Repeatable Read、
Serializable の 4 種類の分離レベルをサポート
 バックアップコールドバックアップ（サービスを停止してファイルをコピー）はもちろん、オンラインバックアップ、増分バックアップも可能 リカバリPITR（ポイント・イン・タイム・リカバリ、Point in Time Recovery、データを過去の任意の時点に戻せる機能）が可能 サポートサービス
障害対応サポート、コンサルティングサービス、研修サービスも提供

22.インストール
今回は、WAMP の環境構築を前提に話を進めていきたいと思います。また、Apache と PHP のインストールはすでに終わっているということも前提に話を進めていきます。Apache と PHP のインストール、環境設定などは前回のマニュアルを参照してください。
ダウンロードページ（http://dev.mysql.com/downloads/）から MySQL Community Server を選択します。Windows
MSI Installer (x86) を選択しダウンロードします。

ユーザー登録をすすめる画面がでてきますが、今回はユーザ登録しないのでマーキングされた No thanks, justtake me to the downloads! をクリック。

ダウンロードするサーバをたずねてくるのでここから一番近いジャパンの国旗を選びます。HTTP と FTP のリンクがありますがどちらでもかまいませんのでクリック。

3

ダウンロードしたファイルを実行。Next

今回は、Typical を選択して Next
 ［Typical］標準的な機能に絞ったインストール
 ［Complete］すべての機能をインストール
 ［Custom］インストールするものを選択する場合に使用

4

InstallNext

5

Next

Configure the MySQL Server now のチェックボックスがチェックされていることを確認して Finish をクリック。これにより環境設定へとすすみます。

63.環境設定

Next

インスタンスの設定方法を選択します。設定方法には詳細設定と標準設定があります。ここでは詳細設定を行うので、Detailed Configuraiton にチェックをいれ Next

7

ここではインストールするサーバーのタイプを選択します。ここでは Developer Machine を選択。選択肢の説明は下記のとおり。

Developer Machine
MySQL を開発用のマシンにインストールすることを想定しています。システムリソースの使用が最小になるように設定されます。

Server Machine
MySQL を Web や FTP などのサービスが稼動するマシンにインストールすることを想定しています。

Dedicated MySQL Server MachineMySQL のみが稼動するサーバにインストールすることを想定しています。システムリソースを最大限に利用する設定になります。

8データベースタイプを選択します。今回は Multifunctional Database を選択します。他の選択肢の説明は下記のとおり。

Multifunctional Database
InnoDB と MyISAM を同じような頻度で使用する場合に選びます。

Transactional Database Only
MyISAM も使用するが、ほとんどの場合が InnoDB という場合に選びます。

Non-Transactional Database Only
InnoDB テーブルをまったく使わない場合に選びます。InnoDB が作成できない設定になります。

InnoDB（イノディービィー）
InnoDB は、テーブルスペース内に複数のテーブルやインデックスを格納するデータ構造を持ち、トランザクション機能をサポートしています。MySQL における、コミット、ロールバック、クラッシュリカバリの各機能を備えたトランザクションセーフ（ACID 準拠）のストレージエンジンです。InnoDB は、行レベルでロックを行い、SELECT
ステートメントで Oracle 式の非ロックの読み取り一貫性(consistent read)を実現します。これらの機能によって、マルチユーザでの並行性とパフォーマンスが向上します。

MyISAM（マイアイサム）
MyISAM は、MySQL の基本的なテーブル型です。テーブル単位のファイルによるデータ構造を持ち、トランザクション機能をサポートしていません。

9

InnoDB のデータファイル保存場所を選びます。なるべく空き容量の大きいドライブを選択してください。

同時接続数を選択します。下記を参照に選択してください。今回は、Decision Support を選択して話を続けます。

10Decision Support (DSS)/OLAP
同時接続数が少ない場合に選びます。
最大 100、平均で 20 の同時接続を想定しています。

Online Transaction Processing (OLTP)
同時接続数が多い場合に選びます。最大 500 の同時接続数を想定しています。

Munual Setting
同時接続数を手動で設定するオプションです。

ネットワークに関するオプションです。通常はデフォルトのままで構いませんが、使用するポート番号を変更できます。

11

MySQL で使用する言語を選択します。以下を最小して選択したあと、Next をクリックしてください。日本語を扱う場
合は必ず Manual Selected Default Character Set / Collation を選択して sjis もしくは ujis を選択します。今回はsjis を設定します。

Standard Character Set
Latin１がデフォルトになります。

Best Support For Multilingualism
UTF8 がデフォルトとなります。

Manual Selected Default Character Set / Collation
日本語をデフォルトとする場合、このオプションを選択し、さらに、Shift-JIS（SJIS）の場合は sjis、EUC の場合は ujis を設定します。

12

Windows のサービスへの追加と環境変数へのパスの追加を行います。デフォルトでは、MySQL という名前でWindows のサービスとして登録されますが、サービス名をドロップダウンリストから選ぶこともできます。Lanch theMySQL Server automatically にチェックが入っていると MySQL のサービスが Windows 起動時に自動的に開始されるようになります。MySQL のサービスをそれほど頻繁に使わない場合は、このチェックを外しておいてください。その場合、コントロールパネルにある管理ツールのサービスから MySQL を開始できます。Include Bin Directory inWindows PATH にチェックを入れると mysql.exe までのパスが環境変数 PATH に登録されるので、コマンドラインで移動したり、パスを記述したりしなくても MySQL が起動できるようになります。ここでは全てにチェックを入れて次へ進みます。

root のパスワードを設定します。稼動後に変更することもできますが、変更時に現在のパスワードの入力が求められます。今回は「passwd」というパスにします。また、セキュリティ上の配慮から、ネットワーク経由の接続では rootが使えないようになっていますが、root を使いたいという場合は Enable root access from remote machines にチェ

13

ックを入れてください。さらに、Create An Anonymous Account にチェックを入れると、匿名ユーザの接続を許可することになり、セキュリティが下がります。

最終的な確認画面が表示されます。Execute をクリックすると実際に設定が反映され、サービスが起動します。ここでエラーが発生するときは、以前のバージョンのサービスが残っているなどの原因が考えられます。その場合は、再度確認のうえ、やりなおしてみてください。

14

4.サービスの設定
ウィザードが終了した時点で、インストール先（ここでは、C:/ProgramFiles/MySQL/MySQL Server 5.1 ) に my.ini
設定ファイルが作成されます。設定を変更したいときは、この my.ini ファイルを編集した後で、MySQL サービスの停止、起動を行います。
この時点で、my.ini ファイルの一番最後に以下を追加して、さらに追加した my.ini ファイルを WINDIR（XP の場合は C:/Windows）へコピーしてください。
default-character-set=sjis
この設定を行わないと、mysql モニタでの日本語表示がうまくいかないことがあります。

コントロールパネルから管理ツールを開いたところ。このなかのサービスを起動します。

15

MySQL が起動していることがわかります。基本的にはここから起動状態の確認、サービスの停止、再起動をします。
アパッチもここでコントロールできます。

16

5.MySQL 起動終了
それでは、いよいよ MySQL を起動させてみたいと思います。起動方法は大きくふたつあります。メニューからとコマンドプロンプトからの起動です。

メニューからは上記のとおり簡単です。

もうひとつはコマンドプロンプトからの起動方法。スタートからファイル名を指定して実行を選ぶか、ウィンドウズキー＋R ででてきますので cmd と入力。

mysql -u ユーザ名 -pと入力します。これはリナックス版の MySQL を起動するときと共通なので本来はこちらから起動する癖をつけておきましょう。ユーザ名が root なのは、いまのところまだ root しか作っていないのでそのためです。

17パスワードを求められるので passwd と打ちエンターキー起動しました。バージョンが表示され、見た目はしょぼいですがこれが MySQL です。終了するときは exit か quit と打ち込みます。

18

以上で Windows 上での MySQL のインストール、サービスの管理、起動終了の説明は終わりです。お疲れ様でした。

19

6.Linux 環境下での LAMP 構築
MySQL のインストールと設定
あらかじめパッケージとしてインストールされているか確認します。パッケージ管理はルートにならないと確認できないのでルート権限になって打ちます。

 MySQL のインストール状況の確認# yum list installed | grep mysql
あった場合、削除# yum remove mysql-bench mysql-devel mysql-server mysql

 MySQL のインストール
http://dev.mysql.com/downloads/ から最新版のソースを落とします。
適当な場所にダウンロードして解凍# tar xvzf mysql-5.1.33.tar.gz
作成されたディレクトリに移動。mysql 起動ユーザを作成します。
# cd mysql-5.1.33# groupadd mysql# useradd -g mysql mysql
次にコンパイルのための設定を行います。
コマンド解説# ./configure \--prefix=/usr/local/mysql \インストールするディレクトリを指定します。
--with-charset=ujis \デフォルトで使用される文字コードを指定します。
--with-extra-charsets=all \デフォルトで以外の文字コードをサポートしたい場合の指定--with-embedded-server \組込みサーバライブラリ（libmysqld）を作成--without-readline \ターミナルでの日本語不具合用のオプション--enable-local-infile \LOAD DATA LOCAL INFILE 文を実行可能に--enable-thread-safe-client \スレッドセーフなクライアントライブラリを作成--with-mysqld-user=mysql \MySQL デーモンを起動するユーザーの指定--with-mysqld-ldflags=-all-static \静的にリンクされたプログラムをコンパイル--with-client-ldflags=-all-static# ./configure 改行
MySQL のインストールディレクトリを設定
デフォルトのキャラクタセットを EUC-JP にその他のキャラクタセットも含めます
組み込みサーバライブラリ（libmysqld）を作成
ターミナルでの日本語不具合のオプション
LOAD DATA LOCAL INFILE 文を実行可能にスレッドセーフなクライアントライブラリを作成
MySQL デーモン起動ユーザ指定
静的にリンクされたプログラムをコンパイル
configure が終了したら、コンパイルして、インストールします。
# make# make install
make install で、/usr/local/ディレクトリ以下にプログラムやファイルが以下のようにインストールされます。

20

ディレクトリ/usr/local/libexec/mysqld/usr/local/bin//usr/local/lib/mysql//usr/local/include/mysql//usr/local/var/

保存されるファイル
MySQL サーバ
コマンド類
ライブラリ
include ファイル
データベース保存先

 インストール後の設定
次に、/etc/ld.so.conf を開いて以下のライブラリへのパスを追加します。
/usr/local/mysql/lib/mysql
その後、ldconfig を実行して設定を読み込みます。
# ldconfig
ユーザデータベースを初期化します。
# /usr/local/mysql/bin/mysql_install_db
アクセス権の変更を行います。mysql ディレクトリ（およびサブディレクトリ）の所有者を root に、グループをroot グループに変更し、さらに、mysql データディレクトリ（およびサブディレクトリ）の所有者を mysql ユーザに、グループを mysql グループに変更します。
# chown -R root /usr/local/mysql# chgrp -R root /usr/local/mysql# chown -R mysql /usr/local/mysql/var# chgrp -R mysql /usr/local/mysql/var

21

 起動
MySQL を起動します。
mysqld_safe は、推奨されている mysqld の起動方法であり、エラー発生時に再起動するなどのセーフティ機能がついています。また「＆」をつけて mysqld をバックグラウンドで実行しています。
# /usr/local/mysql/bin/mysqld_safe --user=mysql &キャラクタセットを指定して起動する場合は、次のようにします。
# /usr/local/mysql/bin/mysqld_safe --user=mysql --default-character-set=キャラクタセット名 &MySQL サーバーに接続します。
# /usr/local/mysql/bin/mysql
次のコマンドプロンプトが出てくれば、インストール成功です。quit または、exit を入力して、いったん接続を切断してください。
mysql>
root にパスワードを設定します。ここでは passwd になってます。
# /usr/local/mysql/bin/mysqladmin -u root password passwd
MySQL のデーモン（サービス）停止は、以下のコマンドで行うことができます。
# /usr/local/mysql/bin/mysqladmin shutdown -u root -p
コマンド検索パスに、mysql ディレクトリへのパスを追加します。Vi を使用して、ホームディレクトリにある .Bashrc ファイルを開きます。
# vi ~/.bashrc.bashrc の任意の場所に、次の行を追加してください。
export PATH="$PATH":/usr/local/mysql/bin
追加後、次のコマンドを実行して設定を反映します。
# source ~/.bashrc
これで、/usr/local/mysql/bin がコマンド検索パスに追加されたため、どのディレクトリからもコマンドでmysql -u root -p と入力すれば、MySQL にログインできるようになりました。以上で Linux 上での MySQLのインストールと設定は終わりです。

22

Windows のコマンドプロンプトからサービスの起動
ここでは、Windows で登録したサービス名が「MySQL」であるとします。起動するには、コントロールパネルの「管理ツール」→「サービス」に登録されている「MySQL」を右クリックして「開始」を選ぶか、あるいは、コマンドプロンプトで次のように入力します。
C:\Program Files\MySQL\MySQL Server 5.1\bin>net start mysql
MySQL サービスを開始します。
MySQL サービスは正常に開始されました。
終了するには、コントロールパネルの「管理ツール」→「サービス」に登録されている「MySQL」を右クリックして「停止」を選択するか、あるいは、コマンドプロンプトで次のように入力します。
C:\Program Files\MySQL\MySQL Server 5.1\bin>net stop mysql
MySQL サービスを停止中です。
MySQL サービスは正常に停止されました。
あるいは、以下のコマンドでも終了できます。
C:\Program Files\MySQL\MySQL Server 5.1\bin>mysqladmin -u root -p shutdown
Enter password: ****
このコマンドは、Windows ではバージョンや設定によって使えないこともあるようです。

23 mysqld のオプション
MySQL サーバ起動時のオプションの一部を紹介します。「mysqld_safe」（Linux）や「mysqld-nt」（Windows）の後にスペースを入れて、以下のオプションを続けます（オペレーティングシステムによっては一部使えないものもあります）。
オプション--ansi

説明
MySQL 構文ではなく、SQL99 構文を使用-h, --datadir=パス

データディレクトリのパス--default-character-set= キ ャ ラ ク
タセット名--default-table-type=テーブル名

デフォルトのキャラクタセットを設定--flushSQL コマンド実行後、ディスクへの変更をすべてフラッシ ュ。
MySQL がクラッシュする場合に行ってみるとよいでしょう-?, --help

ショートヘルプを表示。「--verbose --help」とすると長いヘルプが表示
クライアントエラーメッセージに使用する言語。日本語の場合、「-language=/usr/local/share/japanese」（パスは異なる場合もあります）
接続とクエリをログファイルに記録します-L, --language=言語名-l, --log [=ファイル名]

デフォルトのテーブル型を設定--log-bin [=ファイル名]

データを変更するクエリをすべてログファイルに記録。バックアップおよびレプリケーション用に使用します--log-bin-index [=ファイル名]

バイナリログファイル名のインデクスファイル--log-error [=ファイル名]

エラーメッセージおよびスタートアップメッセージを指定のログファ
イルに記録--log-long-format

追加情報をログファイルに記録（有効化されているすべてのログ）--log-short-format

ログファイル（有効化されているすべてのログ）へ書き出される情報が少なくなります--log-slow-queries [=ファイル名]

実行時間がグローバル変数 long_query_time で指定された秒を超えたクエリをすべてログファイルに記録--skip-innodb

InnoDB テーブルの使用を無効にします。メモリとディスク領域の節約および演算処理のスピードアップに役立ちます。テーブル作
成時に「ENGINE=InnoDB」を指定しても MyISAM テーブルが作成されます--socket=パス

Linux では、ローカル接続に使用するソケットファイル（デフォルトでは/tmp/mysql.sock）を指定。Windows では、名前つきパイプを使用するローカル接続用パイプ名（デフォルトでは MySQL）-t, --tmpdir=パス

テンポラリファイルの作成に使用されるディレクトリの位置を指定。
MySQL4.1 以降、複数のパスの指定が可能。Linux では、「:」（コロン）を、Windows では「;」（セミコロン）を使用してパスを区切ります-u, --user={ ユーザ名 | ユーザ ID }mysqld サーバをユーザ名またはユーザ ID として実行。このユー
ザ名はシステムのユーザのことです-V, --version

バージョン情報を表示

24 サーバが起動しているかどうか確認する
MySQL のサービスが稼動しているかどうかをコマンドで確認できます。「mysqld is alive」と出てくればサービス稼動中です。

 Windows
C:\Program Files\MySQL\MySQL Server 5.1\bin>mysqladmin -u root -p pingEnter password: ******
mysqld is alive Linux# /usr/local/mysql/bin/mysqladmin ping -u root -pEnter password:
mysqld is alive

サービスが起動していないときは、以下のような表示が出ます。

 Windows
C:\Program Files\MySQL\MySQL Server 5.1\bin>mysqladmin -u root -p pingEnter password: ******
mysqladmin: connect to server at 'localhost' failederror: 'Can't connect to MySQL server on 'localhost' (10061)'
Check that mysqld is running on localhost and that the port is 3306.
You can check this by doing 'telnet localhost 3306' Linux# /usr/local/mysql/bin/mysqladmin ping -u root -pEnter password:/usr/local/mysql/bin/mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)'Check that mysqld is running and that the socket: '/tmp/mysql.sock' exists!

25

 デーモンを登録
再起動のたびにこのコマンドを手打ちするのも大変なので、/etc/rc.d/rc.local にコマンドを追記または、rcスクリプト（起動スクリプト）を用意することで、OS の起動時に自動的にデーモン（MySQL サービス。
Windows でいうところのサービスと同じ）を起動させてくれます。rc スクリプト（起動スクリプト）を用意します。
展開されたソースの中（support-files）に rc スクリプトの雛形（mysql.server）がありますので、そちらを使用します。まず、mysql.server を rc.mysql などの適当な名前に変更し保存します。
# cd support-files# mv mysql.server rc.mysql# chmod +x rc.mysql
で実行可能にし、/etc/rc.d/init.d にファイルを移動します。
# mv rc.mysql /etc/rc.d/init.d/
ただし、このままではマシンを再起動しても有効に動きません。
/etc/rc.d/rc2.d/にリンクを張っておきましょう。
# cd /etc/rc.d/rc2.d/# ln -s ../init.d/rc.mysql S90mysql
この rc スクリプトを使うことで、起動時のオプションを /etc/my.cnf ファイルに記述する形で指定できます。
support-files ディレクトリにはさまざまな場合に応じた cnf ファイルが用意されています。huge→large→medium→small の順で規模を選べますが、大きなデータベースに合わせた cnf ファイルは、当然ながら大容量のメモリを積んでいることを前提としています。
適当な cnf ファイルを選び、/etc/my.cnf にコピーします。
# cp my-XXX.cnf /etc/my.cnf
とりあえず、MySQL を動かしたいという人は/usr/local/bin/safe_mysqld --user=mysql & で十分です。後々データベースを最適に動作するように調整したい場合、接続クライアント数をデフォルトから増やしたい場合などには、「/etc/my.cnf ファイルを書き換えることで対処できる」ということを覚えておいてください。

26