MySQL+Toritton インストール


構成

  • Mecab 0.97
  • Senna 1.1.4
  • MySQL 5.0.67
  • Tritonn 1.0.12


確認

1) インストールされているモジュールを確認

$ yum list installed | grep mysql

インストールされていた場合は削除する

$ sudo /etc/init.d/mysqld stop
$ sudo yum remove mysql mysql-devel mysql-server

2) apache 関連がインストールされているか確認

$ yum list installed | grep apr
$ yum list installed | grep apr-util

インストールされていなかった場合はインストールする

試してないけど、これかな。

$ sudo yum install appr
$ sudo yum install apr-util

3) mysql ユーザが存在するか確認

$ sudo cut -d: -f1 /etc/passwd

ユーザが存在した場合は mysql ユーザのグループの確認

$ id mysql

ユーザが存在しなかった場合は作成する

$ sudo groupadd mysql
$ sudo useradd -g mysql mysql


インストールに必要なモジュールをインストール

環境にあわせて適当にインストールしてください。

$ 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


Mecab インストール

インストール

$ 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

共有ライブラリに追加

ファイルの修正

mecab.conf を新たに作成し「/usr/local/mecab/lib」を記述する。

$ sudo vim /etc/ld.so.conf.d/mecab.conf

/usr/local/mecab/lib

ldconfig 更新

$ sudo ldconfig

確認

$ ldconfig -p | grep 'mecab'


Mecab の辞書インストール

$ 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


Senna インストール

インストール

$ 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

共有ライブラリに追加

ファイルの修正

senna.conf を新たに作成し「/usr/local/senna/lib」を記述する。

$ sudo vim /etc/ld.so.conf.d/senna.conf

/usr/local/senna/lib

ldconfig 更新

$ sudo ldconfig

確認

$ ldconfig -p | grep 'senna'


MySQL + Toritonn インストール

インストール

$ 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/mysql 
--libexecdir=/usr/local/mysql/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
$ make
$ sudo make install


設定

共有ライブラリに追加

ファイルの修正

mysql.conf を新たに作成し「/usr/local/mysql/lib/mysql」を記述する。

$ sudo vim /etc/ld.so.conf.d/mysql.conf

/usr/local/mysql/lib/mysql

ldconfig 更新

$ sudo ldconfig

確認

$ ldconfig -p | grep 'mysql'

環境変数の設定(パスを通す)

ファイルを修正する

環境にあわせて適当に設定してください。

$ su - username
$ vim .bash_profile
  • 変更前
    PATH=$PATH:$HOME/bin
    
    export PATH
  • 変更後
    # MySQL
    MYSQL_HOME=/usr/local/mysql
     
    PATH=$PATH:$HOME/bin:$MYSQL_HOME/bin:
    
    export MYSQL_HOME PATH
    export MANPATH="$MANPATH":$MYSQL_HOME/man

設定を反映させる

$ source .bash_profile


MySQL 設定

1) データベースファイルを置く場所を作成

/usr/local/mysql/data にデータファイルを置く場合は、以下のようにフォルダを作成する。

$ sudo mkdir -p /usr/local/mysql/data
$ sudo chown -R mysql /usr/local/mysql/data
$ sudo chgrp -R mysql /usr/local/mysql

今回は、/home/mysql/data に置くので、以下のようにフォルダを作成する。

$ su - mysql
$ mkdir data

2) 設定ファイル(my.cnf)の作成

サンプルがあるのでコピーして使う。

$ sudo cp /usr/local/src/tritonn-1.0.12-mysql-5.0.67/support-files/my-medium.cnf /etc/my.cnf

3) 設定ファイル(my.cnf)の修正

以下のように my.cnf を修正する。

$ vim /etc/my.cnf

skip-character-set-client-handshake を追加

[mysqld] に skip-character-set-client-handshake を追加する。
skip-character-set-client-handshake は、サーバーの文字コード設定をクライアントでもそのまま使う設定。

[mysqld]
skip-character-set-client-handshake

skip-networking をコメントアウト

skip-networking をコメントアウトする。
skip-networking は、ネットワーク (TCP/IP) 経由の接続を許可しない。

変更前
#skip-networking
 ↓
変更後
skip-networking

4) DB 初期化

$ sudo /usr/local/mysql/bin/mysql_install_db --user=mysql


自動起動

MySQL 起動のためのファイルコピー

$ sudo cp /usr/local/src/tritonn-1.0.12-mysql-5.0.67/support-files/mysql.server /etc/init.d/mysqld
$ sudo chmod 755 /etc/init.d/mysqld

MySQL 自動起動設定に mysqld を追加

$ sudo chkconfig --add mysqld

MySQL 自動起動設定

$ sudo chkconfig mysqld on

MySQL 自動起動設定の確認

ランレベル 2, 3, 4, 5 になっていればよい。

$ chkconfig --list mysqld


MySQL 起動

起動

$ sudo /etc/init.d/mysqld start

起動確認

停止

$ sudo /etc/init.d/mysqld stop


パスワード設定

mysql ユーザのパスワード設定

$ sudo passwd mysql

MySQL の root ユーザのパスワード設定

$ sudo mysqladmin -u root password パスワード


DB にアクセスしたらはじめに行うこと

匿名ユーザの削除

$ mysql -u root -p
mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema | 
| mysql              | 
| test               | 
+--------------------+
3 rows in set (0.00 sec)
mysql> use mysql;
Database changed
mysql> SHOW TABLES;
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              | 
| db                        | 
| func                      | 
| help_category             | 
| help_keyword              | 
| help_relation             | 
| help_topic                | 
| host                      | 
| proc                      | 
| procs_priv                | 
| tables_priv               | 
| time_zone                 | 
| time_zone_leap_second     | 
| time_zone_name            | 
| time_zone_transition      | 
| time_zone_transition_type | 
| user                      | 
+---------------------------+
17 rows in set (0.00 sec)
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)


動作確認

Senna 動作確認

参考:http://qwik.jp/senna/check_install.html

Tritonn 動作確認

参考:http://qwik.jp/tritonn/userguide.html


ログの設定

mysql のログは、data フォルダに保管するのが一般的?どうなんだろ?
CentOS だし、ためしに syslog に出力してみる。

フォルダ作成

$ sudo mkdir /var/log/mysql
$ sudo chown mysql:mysql /var/log/mysql

設定ファイル(my.conf)の修正

[mysqld] にログを出力する場所を指定する。
[mysqladmin] にログローテートする時に mysqladmin flush-logs を実行するユーザを記述しておく。

$ sudo vim /etc/my.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


ログローテートの設定

設定ファイルのコピー

サンプルがあるのでコピーして使う。

$ sudo cp /usr/local/src/tritonn-1.0.12-mysql-5.0.67/support-files/mysql-log-rotate /etc/logrotate.d/mysql

ファイルの修正

mysqladmin の場所を確認する。
環境にあわせて適当に設定してください。

$ sudo vim /etc/logrotate.d/mysql
  • 変更前
    /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/mysql/*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/mysql/bin/mysqladmin ping &>/dev/null
    	    then
    		/usr/local/mysql/bin/mysqladmin flush-logs
    	    fi
    	endscript
    }

記述に間違いがないか確認

$ logrotate -d /etc/logrotate.d/mysql 

MySQL の再起動

$ sudo /etc/rc.d/init.d/mysqld restart

ローテートの確認

ローテートを実行する

$ sudo /usr/sbin/logrotate /etc/logrotate.conf

ローテートが実行されたかどうか確認

$ sudo vim /var/lib/logrotate.status

ファイルが作成されているかも確認する

$ ls -la /var/log/mysql

一週間後にローテートが実行されるかどうか確認

logrotate.status を一週間前のものに書き換える

$ 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

ローテートを実行する

$ sudo /usr/sbin/logrotate /etc/logrotate.conf

ローテートが実行されたかどうか確認

$ sudo vim /var/lib/logrotate.status

ファイルが作成されているかも確認する

$ ls -la /var/log/mysql


Comment



Counter: 15329, today: 1, yesterday: 0

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-09-24 (火) 14:56:33 (1541d)