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 >