FreeBSD9.xにmysql5.0.xを導入

http://dev.mysql.com/downloads/mysql/5.0.html#downloads
からsourceを取得。
5.5系とか5.6系などはcmakeとかよくわからないので検討事項にする…


# tar zxvf mysql-5.0.96.tar.gz
# cd mysql-5.0.96
# ./configure --prefix=/usr/local/mysql \
--enable-assembler \
--with-charset=utf8 \
--with-unix-socket-path=/var/lib/mysql/mysql.sock \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--enable-embedded-mysqli \
--with-embedded-server \
--with-extra-charsets=binary,utf8,cp932,eucjpms,ujis,ucs2,latin1,sjis \
--without-readline \
# make
# su
$ make install
テンプレートをコピー

# cp support-files/my-medium.cnf /etc/my.cnf
my.cnfに以下を追加

[mysqld]
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
socket = /var/lib/mysql/mysql.sock
pid_file = /var/lib/mysql/mysql.pid
default-character-set=utf8
skip-character-set-client-handshake

[client]
port = 3306
socket = /var/lib/mysql/mysql.sock
default-character-set=utf8

mysqlグループを作成する


# adduser
Username: mysql
Full name: user for mysql database
Uid [1003]:
Login group [mysql]:
Login group is mysql. Invite mysql into other groups? []:
Login class [default]:
Shell (sh csh tcsh nologin) [sh]:
Home directory [/home/mysql]:
Home directory permissions (Leave empty for default):
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]:
Use a random password? (yes/no) [no]:
Enter password:
Enter password again:
Lock out the account after creation? [no]:
Username : mysql
Password : *****
Full Name : user for mysql database
Uid : 1003
Class :
Groups : mysql
Home : /home/mysql
Home Mode :
Shell : /bin/sh
Locked : no
OK? (yes/no):y
Add another user? (yes/no):n
# install -d -o mysql -g mysql -m 2750 /usr/local/mysql/data
# install -d -o mysql -g mysql -m 2755 /var/lib/mysql
初期DBの作成

# /usr/local/mysql/bin/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data
データベース起動

# /usr/local/mysql/bin/mysqld_safe --user=mysql --skip-networking &
rootユーザーのパスワード設定と接続確認

# /usr/local/mysql/bin/mysqladmin -uroot password パスワード
# /usr/local/mysql/bin/mysql -uroot -p
(パスワード入力)
mysql>
(↑になれば成功)

自動起動を設定する


$ vi /usr/local/etc/rc.d/mysqld.sh

#!/bin/sh
echo -n ' mysql start shell!'

case "$1" in
start)
/usr/local/mysql/bin/mysqld_safe --user=mysql --skip-networking &
;;
stop)
kill `cat /usr/local/mysql/data/xxx.pid`
;;

*)
echo "Usage: `basename $0` {start|stop}" >&2
exit 64
;;
esac

exit 0


$ chomod 755 /usr/local/etc/rc.d/mysqld.sh
$ reboot
再起動してプロセスが動いていればOK

# ps -ax | grep mysql
1009 ?? I 0:01.18 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/u
935 v0- I 0:00.02 /bin/sh /usr/local/mysql/bin/mysqld_safe --user=mysql --skip-networking
1151 0 R+ 0:00.00 grep mysql
#