26 January 2008

MySQLのインストール on Fedora 8

データベースサーバ利用が必須のアプリケーションも多いため、管理が簡単(そう)なMySQLをインストールする。


[root@localhost ~]# yum install mysql-server

設定ファイルを編集し、文字コードをUTF8にする

/etc/my.cnf

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
default-character-set=utf8 ← 文字コード指定追加

[mysql]
default-character-set=utf8 ← 文字コード指定追加

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

MySQLサービスを開始する


[root@localhost ~]# /etc/rc.d/init.d/mysqld start

rootユーザのパスワードを設定する (デフォルトはパスワード無し)


[root@localhost ~]# mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.0.45 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> select user,host,password from mysql.user;
+------+-----------------------+------------------+
| user | host | password |
+------+-----------------------+------------------+
| root | localhost | | ← パスワード欄が空白
| root | localhost.localdomain | |
| root | 127.0.0.1 | |
+------+-----------------------+------------------+
3 rows in set (0.00 sec)

mysql> set password for root@localhost=password('******');
Query OK, 0 rows affected (0.00 sec)

mysql> set password for root@localhost.localdomain=password('******');
Query OK, 0 rows affected (0.00 sec)

mysql> set password for root@127.0.0.1=password('******');
Query OK, 0 rows affected (0.00 sec)

(ユーザ欄が空白の)匿名ユーザが存在する場合は、削除する。


mysql> select user,host,password from mysql.user;
+------+-----------------------+------------------+
| user | host | password |
+------+-----------------------+------------------+
| root | localhost | 286a9d4d7f5c728a |
| root | localhost.localdomain | 286a9d4d7f5c728a |
| | localhost.localdomain | | ← 匿名ユーザ
| | localhost | |
+------+-----------------------+------------------+
4 rows in set (0.00 sec)

mysql> delete from mysql.user where user='';
Query OK, 2 rows affected (0.01 sec)

さらに、phpMyAdmin をインストールする

まず、phpMyAdmin公式ページから、tar.gz圧縮ファイルを入手し、/var/www/htmlディレクトリにコピーしてから、次のように操作する。


[root@localhost ~]# yum install php-mysql

[root@localhost ~]# cd /var/www/html

[root@localhost html]# tar xvf phpMyAdmin-2.11.4-all-languages.tar.gz

[root@localhost html]# mv phpMyAdmin-2.11.4-all-languages phpmyadmin

phpMyAdmin の設定ファイルを編集する。設定ファイルのテンプレートをコピーしてそれを使う。


[root@localhost phpmyadmin]# cp libraries/config.default.php config.inc.php

設定ファイルで変更するのは2箇所のみ

…/config.inc.php

$cfg['blowfish_secret'] = 'cwmowaognbois5dzeglo57jmflivyds'; ← 46文字以内でランダムな文字を設定する

//$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['auth_type'] = 'cookie'; ← ログオン時にユーザ名とパスワードを入力する設定となる

Apacheの実行ユーザをデフォルトのapacheから変更していて、MySQLインストール以前に、PHPでセッション管理を用いたプログラムを実行していない場合は、/var/lib/php/session にエラーが出る (/var/log/httpd/error_logで確認できる)。
この場合は、 /var/lib/php/session のグループを、apacheを実行しているグループに変更する。


[root@localhost lib]# cd /var/lib/php

[root@localhost php]# chown .www_group session/ ← apache実行グループに変更

phpMyAdmin に、先ほどのユーザ名「root」と、パスワードでログオンすると、「mcrypt 拡張をロードできません。PHP の設定を確認してください」というエラーが画面下部に表示される。

php用のmcryptモジュールをインストールする


[root@localhost phpmyadmin]# yum install php-mcrypt