MySQL
これでPHPのインストールと設定も終わった。だが、大半のPHPアプリケーションはデータベースも利用する。安定したオープンソースのデータベースシステムMySQLなら、無料で使える。
次のようにして、SSLサポートを有効にしてMySQLのコンパイルとインストールを行い、オペレーティングシステム起動時にMySQLサーバが自動で立ち上がるように「/etc/rc.conf」にエントリを追加しておく。
cd /usr/ports/databases/mysql51-server make install WITH_OPENSSL=yes make distclean echo 'mysql_enable="YES"' >> /etc/rc.conf
また、rootパスワード(以下の例では「p3Df1IsT」)も設定する。ただし、シェル上でパスワードを設定すると(利用するシェルに応じて「~/.bash_history」や「~/.histfile」に)履歴が残るため、セキュリティ上の理由からシェルのコマンド履歴を消去しておく(特にrootアカウントを共有している場合)。
/usr/local/etc/rc.d/mysql-server start mysqladmin -u root password p3Df1IsT mysql -u root -p rm /root/.history
MySQLにログインしたら、そのコマンドプロンプトから以下のコマンド列を実行することで、すべての匿名アカウントを削除する。4番目のコマンドはパスワードのないユーザの一覧を表示するもので、それぞれについてパスワードを設定するかそのユーザを削除するかを選択できる。最後のコマンドでは、デフォルトのrootアカウントの名前を「mmu002」に変更している。rootアカウントを変更しておくと、何者かにrootパスワードを狙われた場合に都合がよい。というのも、クラッキングは「root」というユーザ名とデフォルトのパスワードや辞書に載っているような単語のパスワードの組み合わせを使って仕掛けられることが多いからだ。この場合は、デフォルトのrootアカウントが存在しないため、クラッキングはずっと困難になる。また、アカウント名には推測しづらいものを用いる。
use mysql DELETE FROM user WHERE user=""; FLUSH PRIVILEGES; SELECT * FROM user WHERE Password=""; UPDATE user SET user='mmu002' WHERE user='root';
FreeBSDのデフォルトの状態ではMySQL設定ファイルが用意されていないので、以下のように「/etc/my.cnf」ファイルを自分で作成してデフォルトのポートを29912番に変更する必要がある。ここでは、127.0.0.1(ローカルホスト)からの接続のみを受け入れるようにする。最後の行は、ユーザが実際に読み書きでアクセスするデータベースだけを表示するもので、このオプションを指定しないと、MySQLによってすべてのデータベースが全ユーザに表示される。
[client] port=29912 [mysqld] port=29912 bind-address=127.0.0.1 skip-name-resolve safe-show-database
タイトルに沿った解説は以上だが、LAMPに関する記事でphpMyAdminに触れないわけにはいかないだろう。
