前に、mysqlを/usrにインストールしたが、squidと同様に、mysqlもヴァージョン毎に別のディレクトリに分けたくなったので、インストールし直す事にした。
cp /var/lib/mysql/my.cnf my.cnf.old
mysqladmin -u root -p shutdown
cd mysql-4.1.8 su -c 'make uninstall'
nice make distclean MYSQL_VERSION=4.1.8 CFLAGS="-O3 -march=pentium4 -fno-omit-frame-pointer" \ CXX=gcc \ CXXFLAGS="-O3 -march=pentium4 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" \ ./configure \ --prefix=/usr/local/mysql-${MYSQL_VERSION} \ --localstatedir=/var/mysql/${MYSQL_VERSION} \ --enable-shared \ --enable-static \ --enable-thread-safe-client \ --enable-assembler \ --with-raid \ --with-unix-socket-path=/var/mysql/${MYSQL_VERSION}/mysql.sock \ --with-mysqld-user=mysql \ --without-debug \ --with-mysqld-ldflags=-all-static \ --with-client-ldflags=-all-static \ --with-charset=binary \ --with-extra-charsets=complex \ --without-innodb \ --disable-nls ed libtool <<EOP %s/shrext_cmds/shrext/g w q EOP nice make nice make test
su MYSQL_VERSION=4.1.8 make install-strip ln -sf mysql-${MYSQL_VERSION} /usr/local/mysql mkdir -p /var/mysql chmod 751 /var/mysql chown mysql.mysql /var/mysql mv /var/lib/mysql /var/mysql/${MYSQL_VERSION} ln -sf /var/mysql/${MYSQL_VERSION} /var/lib/mysql
ed /etc/ld.so.conf <<'EOP' %g/mysql/ c /usr/local/mysql/lib/mysql . w q EOP ldconfig -v
ed /var/lib/mysql/my.cnf <<'EOP' %g/^socket/ d w q EOPコレは、紛らわしいhackで、[mysqld]の方のsocket指定だけを削除する(だから、二回実行しては駄目)。
ed /etc/rc.d/rc.local <<'EOP' %g/mysqld_safe/ c if [ -x /etc/rc.d/rc.mysqld ]; then . /etc/rc.d/rc.mysqld fi . w q EOP cat > /etc/rc.d/rc.mysqld <<'EOF' #!/bin/sh ( ulimit -HSc 0 ulimit -HSd unlimited ulimit -HSf unlimited ulimit -HSl unlimited ulimit -HSm unlimited ulimit -HSn 8192 ulimit -HSs unlimited ulimit -HSt unlimited ulimit -HSu 16383 ulimit -HSv unlimited cd /usr/local/mysql /usr/local/mysql/bin/mysqld_safe --log-slave-updates & ) EOF chmod 755 /etc/rc.d/rc.mysqld
ed /etc/profile <<'EOP' %g/^PATH=/ c PATH="/usr/local/mysql/bin:/usr/local/bin:/usr/bin:/bin" . w q EOP
/etc/rc.d/rc.mysqld