&br;
*MySQL4とMySQL5の共存(MySQL + Toritonn インストール) [#x0801bb9]
#contents2_1(compact=true,depth=1-2)
&br;
*構成 [#fca6f7a2]
MySQL4 と MySQL5 を共存させる。&br;
MySQL4 は、もともと入っているやつをそのまま残す感じで、MySQL5 をソースからインストールする。&br;
MySQL4 は常時起動するつもりがないく Plesk を使いたいときだけ MySQL4 を起動させようかなという感じだけど、一応両方起動できるようにする。&br;
&br;
※あくまでも参考程度にお願いします。&br;
※バックアップはとっておいたほうがよいと思います&br;
**MySQL4 [#f33310f9]
-MySQL 4.1.22
-ポート = 3306
-ソケットファイル = /tmp/mysql.sock
-設定ファイル = /var/lib/mysql/my.cnf (/etc/my4.cnf)
-ログファイル = /var/log/mysqld.log
**MySQL5 [#n5aab9d1]
-Mecab 0.97
-Senna 1.1.4
-MySQL 5.0.67
-Tritonn 1.0.12
-ポート = 適当に
-ソケットファイル = /tmp/mysql5.sock
-設定ファイル = /usr/local/mysql5/my.cnf (/etc/my5.cnf)
-ログファイル = /var/log/mysql5/
&br;
*確認 [#x805efeb]
**1) apache 関連がインストールされているか確認 [#gf753f13]
$ yum list installed | grep apr
$ yum list installed | grep apr-util
***インストールされていなかった場合はインストールする [#t9fef7a4]
試してないけど、これかな。
$ sudo yum install appr
$ sudo yum install apr-util
**2) mysql ユーザが存在するか確認 [#i2019d5c]
$ sudo cut -d: -f1 /etc/passwd
***ユーザが存在した場合は mysql ユーザのグループの確認 [#wdb30ac0]
$ id mysql
***ユーザが存在しなかった場合は作成する [#q0a192e5]
$ sudo groupadd mysql
$ sudo useradd -g mysql mysql
&br;
*インストールに必要なモジュールをインストール [#ndd43570]
環境にあわせて適当にインストールしてください。
$ sudo yum install ncurses-devel
$ sudo yum install libtool
$ sudo yum install libtool-ltdl
$ sudo yum install libtool-ltdl-devel
$ sudo yum install readline-devel
$ sudo yum install libxslt-devel
$ sudo yum install libxml2-devel
$ sudo yum install gcc-c++
$ sudo yum install gcc-java
$ sudo yum install gcc-objc
$ sudo yum install gcc4
$ sudo yum install gcc4-c++
$ sudo yum install autoconf
$ sudo yum install libpng-devel
$ sudo yum install libjpeg-devel
$ sudo yum install libmcrypt-devel
$ sudo yum install ImageMagick-devel
$ sudo yum install automake
$ sudo yum install bison
&br;
*Mecab インストール [#qec51a1f]
**インストール [#lcae9ba7]
$ cd /usr/local/src
$ wget http://nchc.dl.sourceforge.net/sourceforge/mecab/mecab-0.97.tar.gz
$ tar zxvf mecab-0.97.tar.gz
$ cd mecab-0.97
$ ./configure --prefix=/usr/local/mecab --with-charset=utf8
$ make
$ sudo make install
**共有ライブラリに追加 [#d0cbe529]
***ファイルの修正 [#y33d4749]
mecab.conf を新たに作成し「/usr/local/mecab/lib」を記述する。
$ sudo vim /etc/ld.so.conf.d/mecab.conf
/usr/local/mecab/lib
***ldconfig 更新 [#l62f6ba0]
$ sudo ldconfig
***確認 [#m817eb5e]
$ ldconfig -p | grep 'mecab'
&br;
*Mecab の辞書インストール [#xa5e82b8]
$ cd /usr/local/src
$ wget http://nchc.dl.sourceforge.net/sourceforge/mecab/mecab-ipadic-2.7.0-20070801.tar.gz
$ tar zxvf mecab-ipadic-2.7.0-20070801.tar.gz
$ cd mecab-ipadic-2.7.0-20070801
$ ./configure --prefix=/usr/local/mecab --with-charset=utf8 --with-mecab-config=/usr/local/mecab/bin/mecab-config
$ make
$ sudo make install
&br;
*Senna インストール [#u6e97542]
**インストール [#n1252045]
$ cd /usr/local/src
$ wget http://globalbase.dl.sourceforge.jp/senna/33763/senna-1.1.4.tar.gz
$ tar zxvf senna-1.1.4.tar.gz
$ cd senna-1.1.4
$ ./configure --prefix=/usr/local/senna --with-charset=utf8 --with-mecab --with-mecab-config=/usr/local/mecab/bin/mecab-config
$ make
$ sudo make install
**共有ライブラリに追加 [#vaca715f]
***ファイルの修正 [#f69b5ddb]
senna.conf を新たに作成し「/usr/local/senna/lib」を記述する。
$ sudo vim /etc/ld.so.conf.d/senna.conf
/usr/local/senna/lib
***ldconfig 更新 [#m1149b0f]
$ sudo ldconfig
***確認 [#v858bf6b]
$ ldconfig -p | grep 'senna'
**インストール [#of0014bb]
$ cd /usr/local/src
$ wget http://osdn.dl.sourceforge.jp/tritonn/36449/tritonn-1.0.12-mysql-5.0.67.tar.gz
$ tar zxvf tritonn-1.0.12-mysql-5.0.67.tar.gz
$ cd tritonn-1.0.12-mysql-5.0.67
$ ./configure
--prefix=/usr/local/mysql5
--libexecdir=/usr/local/mysql5/bin
--localstatedir=/home/mysql/data
--enable-thread-safe-client
--enable-assembler
--enable-local-infile
--with-charset=utf8
--with-collation=utf8_general_ci
--with-extra-charsets=complex
--with-pic
--with-pthread
--with-mysqld-user=mysql
--with-mecab=/usr/local/mecab
--with-senna=/usr/local/senna
--with-unix-socket-path=/tmp/mysql5.sock
--with-tcp-port=指定したポート
$ make
$ sudo make install
&br;
*MySQL5 のデータベースファイルを置く場所を作成 [#p11dcfa6]
/usr/local/mysql/data にデータファイルを置くのがよくやると思うけど、今回は、/home/mysql/data に置くので、以下のようにフォルダを作成する。
$ su - mysql
$ cd /home/mysql
$ mkdir data
&br;
*my.cnf 作成 [#zfa47645]
**1) my.cnf を置く場所 [#d0d94112]
/etc/my.cnf は今回は使わないことにしました。&br;
MySQL4 で起動したときも、MySQL5 で起動したときも、どちらもはじめに my.cnf を読みに行くためです。&br;
DATADIR/my.cnf を使うことにしました。&br;
参考:http://dev.mysql.com/doc/refman/4.1/ja/option-files.html
**2) MySQL4 の my.cnf の作成 [#k6ca230d]
すでにインストールされているMySQL4が /etc/my.cnf を使っているので、移動しておく。
$ sudo mv /etc/my.cnf /etc/my4.cnf
DATADIR/my.cnf にシンボリックリンクをはる。
$ sudo ln -s /etc/my4.cnf /var/lib/mysql/my.cnf
**3) MySQL4 の my.cnf の修正 [#u7bc55d3]
デフォルトだと文字コードが latin1 になっているので、utf8 に変更するため、my.cnf を修正する。
mysql> SHOW VARIABLES LIKE 'character%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
7 rows in set (0.00 sec)
以下のように my4.cnf を修正する。&br;
$ sudo vim /etc/my4.cnf
***mysql に以下を追記する [#a17e6d3a]
[mysql]
default-character-set = utf8
***mysqld に以下を追記する [#t4d4698d]
[mysqld]
default-character-set = utf8
init-connect=SET NAMES utf8
***mysqldump に以下を追記する [#cdbbb9a0]
[mysqldump]
default-character-set = utf8
***skip-networking をコメントアウト [#d1dfcf48]
skip-networking をコメントアウトする。&br;
skip-networking は、ネットワーク (TCP/IP) 経由の接続を許可しない。
変更前
#skip-networking
↓
変更後
skip-networking
**4) MySQL5 の my.cnf の作成 [#gab1f60d]
サンプルがあるのでコピーして使う。
$ sudo cp /usr/local/src/tritonn-1.0.12-mysql-5.0.67/support-files/my-medium.cnf /etc/my5.cnf
DATADIR/my.cnf にシンボリックリンクをはる。
$ sudo ln -s /etc/my5.cnf /usr/local/mysql5/my.cnf
**5) MySQL5 の my.cnf の修正 [#yd603f06]
以下のように my5.cnf を修正する。
$ sudo vim /etc/my5.cnf
***skip-character-set-client-handshake を追加 [#t791fd27]
[mysqld] に skip-character-set-client-handshake を追加する。&br;
skip-character-set-client-handshake は、サーバーの文字コード設定をクライアントでもそのまま使う設定。
[mysqld]
skip-character-set-client-handshake
***skip-networking をコメントアウト [#vb4f1ca7]
skip-networking をコメントアウトする。&br;
skip-networking は、ネットワーク (TCP/IP) 経由の接続を許可しない。
変更前
#skip-networking
↓
変更後
skip-networking
&br;
*DB 初期化 [#naefe7f2]
$ sudo /usr/local/mysql5/bin/mysql_install_db --defaults-file=/etc/my5.cnf --user=mysql
&br;
*自動起動 [#wa0b7dbf]
**MySQL5 起動のためのファイルコピー [#c67311ca]
$ sudo cp /usr/local/src/tritonn-1.0.12-mysql-5.0.67/support-files/mysql.server /etc/init.d/mysqld5
$ sudo chmod 755 /etc/init.d/mysqld5
**MySQL5 自動起動設定に mysqld を追加 [#ie2d4be2]
$ sudo chkconfig --add mysqld5
**MySQL5 自動起動設定 [#t4eec477]
$ sudo chkconfig mysqld5 on
**MySQL5 自動起動設定の確認 [#vd605cb6]
ランレベル 2, 3, 4, 5 になっていればよい。
$ chkconfig --list mysqld5
**MySQL4 自動起動をOFF [#f4678508]
MySQL4 は常に使う訳ではないので、off にしておく。
$ sudo chkconfig mysqld off
**MySQL4 自動起動設定の確認 [#bdc16100]
off になっていればよい。
$ chkconfig --list mysqld
&br;
*MySQL4 起動 [#z38b0971]
**起動 [#r0e63880]
$ sudo /etc/init.d/mysqld5 stop
$ sudo /etc/init.d/mysqld start
$ mysql -u root -p
**停止 [#y007a5a5]
$ sudo /etc/init.d/mysqld stop
&br;
*MySQL5 起動 [#a46e9fe4]
**起動 [#be872306]
$ sudo /etc/init.d/mysqld stop
$ sudo /etc/init.d/mysqld5 start
$ /usr/local/mysql5/bin/mysql -u root -p
**停止 [#z04b0c10]
$ sudo /etc/init.d/mysqld5 stop
&br;
*mysqld_safe を使って MySQL5 起動 [#uee732dd]
**起動 [#af370d47]
$ sudo /usr/local/mysql5/bin/mysqld_safe --defaults-file=/etc/my5.cnf --user=mysql &
**停止 [#l099cc66]
$ sudo /usr/local/mysql5/bin/mysqladmin --defaults-file=/etc/my5.cnf shutdown
もしくわ
$ sudo /usr/local/mysql5/bin/mysqladmin --port=3307 -u root -p shutdown
&br;
*パスワード設定 [#g0c92295]
**MySQL5 の root ユーザのパスワード設定 [#f6529531]
$ sudo /usr/local/mysql5/bin/mysqladmin -u root password パスワード
&br;
*DB にアクセスしたらはじめに行うこと [#nd50d21c]
**匿名ユーザの削除 [#p7d9e3c1]
$ /usr/local/mysql5/bin/mysql -u root -p
mysql> use mysql;
Database changed
mysql> DELETE FROM user WHERE User='';
Query OK, 2 rows affected (0.00 sec)
mysql> DELETE FROM db WHERE User='';
Query OK, 2 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
&br;
*動作確認 [#k0ef7dbf]
**Senna 動作確認 [#c798422b]
参考:http://qwik.jp/senna/check_install.html
**Tritonn 動作確認 [#d0df519e]
参考:http://qwik.jp/tritonn/userguide.html
&br;
*MySQL5 のログの設定 [#nbd2d794]
mysql のログは、data フォルダに保管するのが一般的?どうなんだろ?&br;
ためしに syslog に出力してみる。
**フォルダ作成 [#k57be37a]
$ sudo mkdir /var/log/mysql5
$ sudo chown mysql:mysql /var/log/mysql5
**設定ファイル(my5.conf)の修正 [#p9ab804f]
[mysqld] にログを出力する場所を指定する。&br;
[mysqladmin] にログローテートする時に mysqladmin flush-logs を実行するユーザを記述しておく。
$ sudo vim /etc/my5.cnf
[mysqld]
log = /var/log/mysql/mysql.log
log-error = /var/log/mysql/mysql-error.log
log-slow-queries = /var/log/mysql/mysql-slow.log
[mysqladmin]
password = パスワード
user= root
&br;
*ログローテートの設定 [#aee475bb]
***設定ファイルのコピー [#bdcbe071]
サンプルがあるのでコピーして使う。
$ sudo cp /usr/local/src/tritonn-1.0.12-mysql-5.0.67/support-files/mysql-log-rotate /etc/logrotate.d/mysql5
***ファイルの修正 [#cf98a22a]
mysqladmin の場所を確認する。&br;
環境にあわせて適当に設定してください。&br;
$ sudo vim /etc/logrotate.d/mysql5
-変更前
/home/mysql/data/mysqld.log {
# create 600 mysql mysql
notifempty
daily
rotate 3
missingok
compress
postrotate
# just if mysqld is really running
if test -x /usr/local/mysql/bin/mysqladmin && \
/usr/local/mysql/bin/mysqladmin ping &>/dev/null
then
/usr/local/mysql/bin/mysqladmin flush-logs
fi
endscript
}
-変更後
/var/log/mysql5/*log {
# create 600 mysql mysql
notifempty
daily
rotate 4 #4回分のログを保存する
missingok
compress
postrotate
# just if mysqld is really running
if test -x /usr/local/mysql5/bin/mysqladmin && \
/usr/local/mysql5/bin/mysqladmin --defaults-file=/etc/my5.cnf ping &>/dev/null
then
/usr/local/mysql5/bin/mysqladmin --defaults-file=/etc/my5.cnf flush-logs
fi
endscript
}
**記述に間違いがないか確認 [#g2bf9a27]
$ logrotate -d /etc/logrotate.d/mysql5
**MySQL5 の再起動 [#x74bb0ab]
$ sudo /etc/rc.d/init.d/mysqld5 restart
**ローテートの確認 [#z85cac4e]
***ローテートを実行する [#ocf7cdf4]
$ sudo /usr/sbin/logrotate /etc/logrotate.conf
***ローテートが実行されたかどうか確認 [#m6a7dd35]
$ sudo vim /var/lib/logrotate.status
ファイルが作成されているかも確認する
$ ls -la /var/log/mysql5
**一週間後にローテートが実行されるかどうか確認 [#e4d4b868]
***logrotate.status を一週間前のものに書き換える [#j777bfb0]
$ sudo vim /var/lib/logrotate.status
変更前
"/var/log/mysql/mysql-error.log" 2009-4-26
"/var/log/mysql/mysql-slow.log" 2009-4-26
"/var/log/mysql/mysql.log" 2009-4-26
↓
変更後
"/var/log/mysql/mysql-error.log" 2009-4-19
"/var/log/mysql/mysql-slow.log" 2009-4-19
"/var/log/mysql/mysql.log" 2009-4-19
***ローテートを実行する [#bdf1ebcd]
$ sudo /usr/sbin/logrotate /etc/logrotate.conf
***ローテートが実行されたかどうか確認 [#q046b308]
$ sudo vim /var/lib/logrotate.status
ファイルが作成されているかも確認する
$ ls -la /var/log/mysql5
**共有ライブラリに追加 [#v4111660]
***ファイルの修正 [#je5da0d6]
neon.conf を新たに作成し「/usr/local/mysql5/lib/mysql」を記述する。
$ sudo vim /etc/ld.so.conf.d/mysql5.conf
/usr/local/mysql5/lib/mysql
***ldconfig 更新 [#za889c09]
$ sudo ldconfig
***確認 [#v40cd7a9]
$ ldconfig -p | grep 'mysql'
&br;
*メモ [#w9ffdd3c]
-Drizzle
-Drizzle
-MySQL Cluster とか MySQL Proxy を使うなら、MySQL5.1.x
&br;
*Comment [#xb881cee]
#comment_nospam
&br;
#counter
IP:120.75.34.83 TIME:"2009-06-15 (月) 17:07:47" REFERER:"http://wiki.minaco.net/index.php?cmd=edit&page=%E4%BD%BF%E3%81%88%E3%82%8B%E3%81%AD%E3%81%A3%E3%81%A8%2F04.MySQL4%E3%81%A8MySQL5%E3%81%AE%E5%85%B1%E5%AD%98" USER_AGENT:"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; ja-JP-mac; rv:1.9.0.11) Gecko/2009060214 Firefox/3.0.11"