MySQL 5.5 系のインストール(Linux環境)

最終更新日:2013年12月12日

概要

MySQLは、フリーで使える高速なデータベースです。

1. MySQLインストール用のソースコードmysql-5.5.11.tar.gz入手する

以下のURLから入手可能です。日々バージョンアップされていますので、その時どきの最新安定版をダウンロードすることをお勧めします。

http://www.mysql.com/downloads/

2. ダウンロードしたファイルを適当なフォルダに移動して解凍する

$ tar zxvf mysql-5.5.11.tar.gz

3. 解凍後、バージョンに応じたフォルダが作成されるので、カレントフォルダを移動する

$ cd mysql-5.5.11

4. 新規ユーザ、グループを生成する

セキュリティ上、専用のユーザを使用されることをお勧めします。
ここでは、ユーザ、グループ共mysqlと設定します。

# groupadd mysql
# useradd -g mysql mysql
# passwd mysql

5. コンパイル条件を設定する

MySQL5.5よりコンパイルのcmakeを使用します。
ご利用の環境にインストールされていない場合は、以下のコマンドよりあらかじめインストールを行っておいてください。

yum install cmake

見やすくするために複数行に分けて書いていますが、実際には一行で入力してください。

$ cmake
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql
-DDEFAULT_CHARSET=utf-8
-DEXTRA_CHARSETS=all
-DMYSQL_USER=mysql

それぞれのオプションの意味は、以下の通りです

オプション 意味
-DCMAKE_INSTALL_PREFIX インストール先フォルダ
-DDEFAULT_CHARSET 文字コードセット。ここではutf-8に設定します
-DEXTRA_CHARSETS デフォルトの文字コード以外にサポートする文字コード
-DMYSQL_USER MySQLデーモンを起動するユーザ

6. コンパイル処理後、インストールを行う

以下のコマンドを入力してください。

$ make
$ su
# make install

7. 初期データベースを生成する

初めてMySQLをインストールする場合のみ、初期データベースを生成する必要があります。

# /usr/local/mysql/bin/mysql_install_db

mysql_install_dbを実行したユーザとrootユーザを生成します。
続いてmysql_install_dbを実行したユーザとrootユーザをMySQL上に生成します。
(ここで生成されるユーザは、MySQL上でのユーザです。Linux上のユーザではありません)
エントリされるユーザのパスワードは、デフォルトで空文字列です。
バイナリのオーナーをrootに、データフォルダの所有権をmysqldを実行するユーザに変更します。

# chown -R root /usr/local/mysql
# chown -R mysql /usr/local/mysql/var
# chgrp -R mysql /usr/local/mysql

8. MySQLを起動する

# /usr/local/mysql/bin/mysqld_safe &

9. MySQLが正常動作していることを確認する

# /usr/local/mysql/bin/mysqladmin -u root ping

mysqld is aliveと表示されれば成功です。

10. パスワードを設定する

インストール直後は、管理者rootのユーザにパスワードが設定されていません。
これはセキュリティ上、好ましくありませんので、ここではパスワードを"passwd1"と設定します。
もちろん、パスワードは自分で決めることもできます。

# /usr/local/mysql/bin/mysql -u root
mysql > SET PASSWORD FOR root@localhost=PASSWORD('passwd1');
mysql > exit;

また、MySQLサーバを起動し、パスワードの付加されていないユーザをすべて削除します。
MySQL起動時にはパスワードを聞かれますので、先ほど設定した「passwd1」を入力してください。。

# /usr/local/mysql/bin/mysql -u root -p
Enter password: *******
mysql > USE mysql;
mysql > DELETE FROM user WHERE password='';
mysql > exit;

11. サンプル用データベースを展開する(データベースのバックアップファイルがある場合のみ必要)

ここでは、使用するデータベースをMySQLサーバ内のsampleデータベースに展開してみます。
カレントフォルダにデータベースファイル(mysqldumpコマンドで生成されたバックアップファイル。ここでは「database.sql」とします)をあらかじめコピーした上で、以下のコマンドを入力します。

# /usr/local/mysql/bin/mysqladmin CREATE sample
# /usr/local/mysql/bin/mysql sample < database.sql

12. データベースアクセス用の新規ユーザを設定する

セキュリティ上、rootユーザを日常のデータベースアクセスに使用するのは好ましくありません。
ここでは、通常処理用の"sample"ユーザ(パスワード:passwd2)を新規に作成します。新規ユーザの追加には、mysqlからgrant命令を使って行います。

$ /usr/local/mysql/bin/mysql -u root -p
Enter password: *******
mysql > GRANT all privileges ON sample.* TO sample@localhost IDENTIFIED BY 'passwd2';
mysql > exit;

上記指定ではうまくユーザ権限の設定ができない場合があります。その場合は、以下の命令で試してみてください。

GRANT all privileges ON sample.* TO sample@localhost.localdomain IDENTIFIED BY 'passwd2';

または

GRANT all privileges ON sample.* TO sample@127.0.0.1 IDENTIFIED BY 'passwd2';