可用性、パフォーマンス対策のため自宅サーバにMySQLProxyを導入してみた。

http://dev.mysql.com/downloads/mysql-proxy/

# tar vxzpf mysql-proxy-0.8.2-linux-rhel5-x86-32bit.tar.gz
# cd /home
# ln -s /home/hpsuser/mysql-proxy-0.8.2-linux-rhel5-x86-32bit mysql-proxy
# cd /home/mysql-proxy/
# vi mysql-proxy.cnf
------------------------------------------
[mysql-proxy]
daemon = true
pid-file = /home/mysql-proxy/mysql-proxy.pid
log-file = /home/mysql-proxy/mysql-proxy.log
log-level = debug
proxy-address = 127.0.0.1:10502
proxy-backend-addresses=hoge
proxy-lua-script = /home/mysql-proxy/share/doc/mysql-proxy/histogram.lua
------------------------------------------
# chmod 0660 /home/mysql-proxy/mysql-proxy.cnf
# /home/mysql-proxy/bin/mysql-proxy --defaults-file=/home/mysql-proxy/mysql-proxy.cnf

mysqlクライアントポート変更

# vi /etc/my.cnf
-----------------------------
[client]
port=10502
----------------------------

↑ポートを変更

# mysql -u root -pXXXXXX -P 10502

↑接続を確認。

mysql-proxyの自動起動設定を行う。

# cd /etc/rc.d/init.d/
# vi mysql-proxy
----------------------------------------------------------------------
#!/bin/sh
# chkconfig: 345 99 01
# description: MySQL Proxy Daemon
# processname: mysql-proxy
progname=mysql-proxy
pidfile=/home/mysql-proxy/${progname}.pid
lockfile=/var/lock/subsys/${progname}
prog=/home/mysql-proxy/bin/mysql-proxy
prm='--defaults-file=/home/mysql-proxy/mysql-proxy.cnf'
. /etc/init.d/functions
RETVAL=0
start() {
        echo -n $"Starting $progname: "
        daemon "${prog} ${prm}"
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && touch $lockfile
        return $RETVAL
}
stop() {
        echo -n $"Stopping $progname: "
        killproc ${prog}
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && rm -f $lockfile
        return $RETVAL
}
case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  restart)
        stop
        start
        ;;
  *)
        echo $"Usage: $0 {start|stop|restart}"
        exit 1
esac

exit $RETVAL
----------------------------------------------------------------------
# chkconfig --add mysql-proxy
# chkconfig --list | grep mysql-proxy
mysql-proxy     0:off   1:off   2:off   3:on    4:on    5:on    6:off


スタンドアロンなマシンなので負荷分散テストなど出来ないから
効果はよくわからない。