&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



トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS