mysql4.0とmysql5.0の共存

2008年5月3日(土)

数日前にmysql3.23とmysql5.0の共存という記事を書いた。このサーバ、10日ほどmysql3.23とmysql5.0が共存していたが、若干の問題が発生し、mysql3.23のバージョンを上げてmysql4.0とmysql5.0を共存することにした。(いままでのmysql3.23は削除。)メモを兼ねて共存手順を書いておく。

インストールするmysql4.0のポート、ソケットは次のとおり。
ポート: 43306
ソケット: /tmp/mysql.sock4.0

1: /etc/my.cnf を5.0専用にする
/etc/my.cnf 修正
[mysqld] を  [mysqld-5.0] に変更しmysql再起動。

2: ソースインストール
ソースmysql-4.0.27.tar.gz は/tmp下にコピーしておく。
実行は新ユーザ mysql4 とする。

# useradd mysql4
# mkdir /usr/local/mysql4.0
# chown mysql4 /usr/local/mysql4.0

# cd /usr/local/src
# mkdir mysql-4.0.27
# chown mysql4 mysql-4.0.27
# su - mysql4
rootはここまで。

$ cd /usr/local/src
$ tar xvzf /tmp/mysql-4.0.27.tar.gz
$ cd mysql-4.0.27

$ ./configure –prefix=/usr/local/mysql4.0 –with-extra-chrasets=all –with-charset=ujis –with-pthread –with-named-thread-libs=-lpthread –disable-dependency-tracking –without-bench –without-debug –enable-assembler

$ make >make.log 2>makeErr.log

次のエラーとなる。

mysqld.cc:(.text+0×3911): undefined reference to `my_fast_mutexattr’
mysqld.o:mysqld.cc:(.text+0×3b35): more undefined references to `my_fast_mutexattr’ follow
collect2: ld returned 1 exit status

ある記事によれば

my_fast_mutexattrはmysys/my_thr_init.cに
以下のように定義されています。

#ifdef PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP
pthread_mutexattr_t my_fast_mutexattr;
#endif

この定義を次のように変更したら、makeは成功しました。

//#ifdef PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP
pthread_mutexattr_t my_fast_mutexattr;
//#endif

とあり確かにmakeは成功するが、ソースを見るとこれでは心配なので mysys/my_thr_init.cに

// ADD
#define PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP 1

行を先頭付近に付加した。これでOK。

$ make install >install.log 2>installErr.log

インストールOK。

3: /etc/my.cnfに4.0専用記述を追加

[mysqld-4.0]
port=43306
basedir=/usr/local/mysql4.0
datadir=/usr/local/mysql4.0/var

4: DB初期化
ユーザ mysql4

$ cd /usr/local/src/mysql-4.0.27
$ scripts/mysql_install_db

5: mysqlデーモン開始
rootで実行。

# /usr/local/mysql4.0/bin/mysqld_safe –log-error=/var/log/mysql40.log –socket=/tmp/mysql.sock4.0 –pid-file=/usr/local/mysql4.0/var/mysqld40.pid –user=mysql4 &

6: mysqlコマンド接続
mysqlデータベース接続には次のどちらかで接続する。

$ /usr/local/mysql4.0/bin/mysql –port=43306 –socket=/tmp/mysql.sock4.0 -uroot mysql

または

$ /usr/local/mysql4.0/bin/mysql –port=43306 -h127.0.0.1 -uroot mysql

mysql4.0アクセスには/usr/local/mysql4.0/bin/下のコマンドを使用する。

以上でmysql4.0とmysql5.0は共存し、私のサーバにて正常に動作している。

この記事のトラックバックURL:
http://www.oboefukuneco.com/archives/6/trackback

コメント投稿

(承認制となっております。)


(必須)


(ブログには表示されません)



コメント・トラックバック一覧(0)

コメントはまだありません。

 
サブタイトル カレンダー

 

2017 年 9 月
« 3 月    
 12
3456789
10111213141516
17181920212223
24252627282930
秘書
サブタイトル profile

 

職業はソフトウェアエンジニア。趣味はバロックオーボエとモダンオーボエ演奏。このブログでは、Python・Go・Scala言語、そのWEBアプリケーションフレームワーク、そしてバロックオーボエ・クラシカルオーボエの話題を中心に書いて参ります。

サブタイトル 検索

 

サブタイトル 最近のトラックバック

 


QLOOK ANALYTICS