CentOSにMySQL4.1をInstallして複数起動(失敗編)

お客様の環境に合わせて、MySQL4.1の環境が欲しかったので、SourceからCompileして、既存のMySQLと競合しないように別Portで起動させたときのMemo. (途中で諦めたんだけど・・・)

環境はCentOS 5.6 32bit

必要なToolsをInstallしておく
# yum install gcc gcc-c++ libtermcap-devel

SourceのDownloadはこちらから。

# cd /opt/software
# unzip openlogic-mysql-4.1.22-all-src-1.zip
# cd mysql-4.1.22-src/

compile optionを確認する
# ./configure --help

Install prefixを変更してcompile
#  ./configure --prefix=/usr/local/mysql41
# make

compileの途中で
error: redeclaration of C++ built-in type
のようなErrorで怒られたら、(検索して解決したあとに)
# make clean
# make distclean
して再compile.

# make install

installが完了したら、下記Official Documentに従って初期化を行う。

MySQL :: MySQL 4.1 リファレンスマニュアル :: 2.4 インストール後の設定とテスト

# ./scripts/mysql_install_db
# cd /usr/local/mysql41
# bin/mysqld_safe --user=mysql &

ここで、
A mysqld process already exists
と怒られたので、mysql_install_dbの出力messageに従うことにした。

# cp support-files/mysql.server /etc/rc.d/init.d/mysql41
# chmod 755 /etc/rc.d/init.d/mysql41

あとはこの起動Scriptを読んで、必要そうなのを準備
# mkdir /usr/local/mysql41/var
# chown mysql /usr/local/mysql41/var
# mkdir /usr/local/mysql41/tmp
# chmod 777 /usr/local/mysql41/tmp
# mkdir /usr/local/mysql41/log

my.cnfはsupport-filesにあるのをcopy
cp /opt/software/mysql-4.1.22-src/support-files/my-small.cnf etc/my.cnf
# vi etc/my.cnf
# vi /etc/rc.d/init.d/mysql41

[client]
port            = 3309
socket          = /usr/local/mysql41/tmp/mysql.sock

[mysqld]
port = 3309
socket = /usr/local/mysql41/tmp/mysql.sock
log-error       = /usr/local/mysql41/log/mysqld.log
pid-file        = /usr/local/var/mysqld.pid

# vi /etc/rc.d/init.d/mysql41

conf=/usr/local/mysql41/var/my.cnf

これで起動してみる。
# /etc/rc.d/init.d/mysql41 start

・・・失敗。logを見てあーだこーだしてみたけどダメ。既存のMySQLにも影響が出たのでuninstallすることにした。

まずはBackup
# cd /var/lib/
# tar -czvf /tmp/mysql20110611.tar.gz mysql/

# yum remove mysql
# yum install mysql mysql-server php-mysql php-devel
# rm -rf /usr/local/mysql41
# rm -f /etc/rc.d/init.d/mysql41

起動後に下記Errorが出たけど、もう一度再起動したら直った。

Error#2013 - Lost connection to MySQL server at 'reading initial communication packet', system error: 111

Xampp for linuxのMySQL4.1が入っているPackageを使お。

 

< Related Posts >

【Linux】Xampp(lampp)のMySQLを複数起動