最終更新日:2013年12月12日
概要
MySQLは、フリーで使える高速なデータベースです。
1. MySQLインストール用のソースコードmysql-5.5.11.tar.gz入手する
以下のURLから入手可能です。日々バージョンアップされていますので、その時どきの最新安定版をダウンロードすることをお勧めします。
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. コンパイル条件を設定する
| オプション | 意味 |
| -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
-
「ERROR1050 xxxx already exists (xxxxはテーブル名)」のようなエラーが出たら、
# mysqladmin -u root -p DROP xxxx (xxxxはデータベース名を入力)
で一度データベースを削除してから再度データを展開してみてください。 -
データベースのバックアップは以下のコマンドで行ってください。(以下は、ユーザroot、パスワードpasswd1の場合)
# mysqldump -uroot -ppasswd1 sample > usr/local/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';