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