MySQL - phpMyAdmin
導入
下記より本体を入手する
http://www.phpmyadmin.net/home_page/index.php
設定
設定は phpMyAdmin フォルダの中にある config.inc.php にて行う。
接続方法
$cfg['Servers'][$i]['extension'] = 'mysqli';
MySQL は Ver.5 から mysqli を使用するようになったらしい。
ログイン方法
config.inc.php から下記の行を探し、Cookie 認証に設定する。
$cfg['Servers'][$i]['auth_type'] = 'config'; ↓ $cfg['Servers'][$i]['auth_type'] = 'cookie';
config は config.inc.php 中にパスワードを記述する方式であり、セキュリティ上危険。
更に、Cookie 認証用のパスフレーズを下記に設定する。
$cfg['blowfish_secret'] = '適当なパスフレーズ ';
文字セットの設定
デフォルトの言語と文字セットを設定する。
$cfg['DefaultLang'] = 'ja-utf-8'; $cfg['DefaultCharset'] = 'utf-8';
よくある問題
#2002 エラーが表示される。
phpMyAdmin 側と MySQL 側で使用するソケットの形式が違うと起こるエラー。
MySQL が現在使用しているソケットに PHP 側も合わせてやれば解決する。
MySQL にて以下コマンドを実行して現在のソケットの設定を確認する。
(UNIX socket あたりを確認)
mysql> status
〜(略)〜 UNIX socket: tmp/mysql.sock 〜(略)〜
/etc/php.ini を開く(無ければ /etc/php.ini.default をリネームして作る)
mysql.default_socket =
を探して先ほどの MySQL の status コマンドで出てきたものに書き換える。
mysql.default_socket = /tmp/mysql.sock
mcrypt を有効にする
以下は Mac OSX 10.6 でのやり方です。
1) libmcrypt-2.5.8 をダウンロード
2) PHP-5.3.3 をダウンロード
適当なディレクトリに ./tmp を作成し、その中に上記プログラムを展開する。
libmcrypt-2.5.8 ディレクトリに cd で移動し次をタイプ。
$ MACOSX_DEPLOYMENT_TARGET=10.6 CFLAGS='-O3 -fno-common -arch i386 -arch x86_64' LDFLAGS='-O3 -arch i386 -arch x86_64' CXXFLAGS='-O3 -fno-common -arch i386 -arch x86_64' ./configure --disable-dependency-tracking
続いて、
$ make -j6
そして、
$ sudo make install
./tmp/php-5.3.3/ext/mcrypt に移動して以下をタイプする。
$ /usr/bin/phpize
これで拡張モジュールがビルドされるので、以下をタイプする。
$ MACOSX_DEPLOYMENT_TARGET=10.6 CFLAGS='-O3 -fno-common -arch i386 -arch x86_64' LDFLAGS='-O3 -arch i386 -arch x86_64' CXXFLAGS='-O3 -fno-common -arch i386 -arch x86_64' ./configure --with-php-config=/Developer/SDKs/MacOSX10.6.sdk/usr/bin/php-config
再び、
$ make -j6
そして、
$ sudo make install
/etc 直下に php.ini を作成し、enable_dl=On になっていることを確認する。
そして、以下の一行を php.ini ファイル内に追加する。
extension=mcrypt.so
Apache を再起動して完了!!
タイムアウト時間を調整する
phpMyAdmin にログインしてしばらくすると強制的にタイムアウトとなり、再度ログインし直さなければならない。これが結構面倒なのでその回避方法。
config.inc.php を開き、以下を追加する。
$cfg['LoginCookieValidity'] = 86400;
これで 86400秒(24時間)ログイン状態を維持できる。
但し、これだけだと PHP 側で設定されているセッションファイルの有効期限より大きくなってしまうことがほとんどで、phpMyAdmin にログインすると以下のようなエラーが表示されてしまう。
Your PHP parameter session.gc_maxlifetime is lower that cookie validity configured in phpMyAdmin, because of this, your login will expire sooner than configured in phpMyAdmin.
ちなみに PHP のセッションファイルの有効期限は php.ini 内の session.gc_maxlifetime で設定できるが、先ほど config.inc.php に追加した行の直下あたりに以下のように工夫する事でも対処できる。
$cfg['LoginCookieValidity'] = 86400; ini_set( "session.gc_maxlifetime", $cfg['LoginCookieValidity'] );