MySQL の FreeBSD へのインストール †MySQL は好みではないのだが、MySQL でないと動かないというアプリも多いので、 やむを得ず導入する。 (MySQL/PostgreSQL の2本立てになっているのは正直困る。メモリとディスクスペースの無駄遣い。) MySQL 5.5 インストール †make.conf に追加 .if ${.CURDIR}=="/usr/ports/databases/mysql55-client"
WITH_CHARSET=utf8
WITH_XCHARSET=all
WITH_OPENSSL=yes
# DB_DIR は不要(/etc/rc.conf の mysql_dbdir で設定可能。)
.endif
.if ${.CURDIR}=="/usr/ports/databases/mysql55-server"
WITH_CHARSET=utf8
WITH_XCHARSET=all
WITH_OPENSSL=yes
.endif
必要であれば、/usr/local/etc/pkgtools.conf に追加。 MAKE_ARGS = {
...
'databases/mysql55-*' => [
'WITH_CHARSET=utf8',
'WITH_XCHARSET=all',
'WITH_OPENSSL=yes',
],
}
クライアントだけをインストールする場合 †# cd /usr/ports/databases/mysql55-client # make install サーバーをインストールする場合(クライアントもセットで入る) †# cd /usr/ports/databases/mysql55-server # make install /etc/rc.conf に以下を追加する。 mysql_enable="YES" mysql_dbdir="/usr/local/mysql/data" mysql_dbdir を設定しない場合は、/var/db/mysql が使われる。 my.cnf は /usr/local/share/mysql にサンプルがあるので、ここから ${mysql_dbdir}/my.cnf を作る。(この my.cnf はサーバー設定用。) /etc/my.cnf にコピーすると全体設定に。~/my.cnf だと個人設定に。 やらないといけないこと †
SSL を使えるようにする †参考 †
以下 obsolete †現在の安定版として MySQL 4.1.* をインストールする。 MySQL 4.1.1 からは、文字コードセットを柔軟に指定可能になったとのことなので WITH_CHARSET はなしとする。 とりあえず、WITH_OPENSSL=yes のみで行く。BUILD_OPTIMIZED=yes は、どうしようもなくなったら試してみる。 (WITH_LINUXTHREADS=yes じゃないとハングするかのようなことが MySQL のマニュアルに書かれているが、大丈夫だろうか?) デフォルトだと /var/db/mysql にデータベースファイルが置かれてしまうので、/usr/local/mysql に置くようにする。 ports からインストールする。 /etc/make.conf に以下を追加。 .if ${.CURDIR}=="/usr/ports/databases/mysql41-client"
WITH_OPENSSL=yes
# DB_DIR は不要(/etc/rc.conf の mysql_dbdir で設定可能。)
.endif
.if ${.CURDIR}=="/usr/ports/databases/mysql41-server"
WITH_OPENSSL=yes
.endif
/usr/local/etc/pkgtools.conf に以下を追加。 MAKE_ARGS = {
...
'databases/mysql41-server' => 'WITH_OPENSSL=yes',
'databases/mysql41-client' => 'WITH_OPENSSL=yes',
...
}
コンパイルとインストールを行う。 # cd /usr/ports/databases/mysql41-client # make # make install # cd /usr/ports/databases/mysql41-server # make # make install /etc/rc.conf に以下を追加する。 mysql_enable="YES" mysql_dbdir="/usr/local/mysql/data" 起動する。(システム再起動でもよい。) /usr/local/etc/rc.d/mysql-server.sh start データベースクラスタがなければ自動的に作られる。 権限テーブルを更新する。 †古いバージョンからのアップグレードの場合、以下のコマンドで権限テーブルを更新する。 $ mysql_fix_privilege_tables 実行しないと、パスワードの設定ができなかったりする場合がある。 root にパスワードをつける。 †mysql の中の root ユーザー(FreeBSD の root とは無関係)がスーパーユーザーになっている。 デフォルトではパスワードなしなので、パスワードをつける。 $ mysqladmin -u root password 新しいパスワード パスワードなしではエラーになることを確認。 $ mysql -u root ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) パスワードありでログインできることを確認。 $ mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 15 to server version: 4.1.7 ... 不要なユーザーを削除する。 †まず、以下の SQL で、余計なユーザーがないか確認する。 mysql> select * from mysql.user; mysql> select * from mysql.tables_priv; FreeBSD の ports でインストールすると、以下のユーザーがいるはず。(your.host.name は、マシンのホスト名)
これを、以下のみとする。
権限はないものの、test データベース用に自サーバーから誰でもログインできるようになっているので、これを制限する。(DROP USER ''@your.host.name; DROP USER ''@localhost でも可。) mysql> delete from mysql.user where user = ''; mysql> flush privileges; 名前なしでログインできないことを確認。 $ mysql ERROR 1130 (00000): #HY000Host 'your.host.name' is not allowed to connect to this MySQL server |