CentOS/RHELに MySQL5.5 を yum でインストールする方法と、いつもやる最低限の初期設定を書きます。
■ MySQL5.5インストール (yum配布版rpm)
yum で rpmパッケージをインストールするには標準のリポジトリでなく remi を使います。
(2012/9月現在では標準のリポジトリでは配布されていません)
remi リポジトリをまだ入れていない場合は入れておきます。
# cd /etc/yum.repos.d # wget http://rpms.famillecollet.com/enterprise/remi.repo
(1) インストール
# yum --enablerepo=remi -y install mysql-server
(2) ファイル構成
/usr/bin/mysql* ... プログラム諸々 /etc/my.cnf ... 設定ファイル /usr/share/mysql ... 設定ファイルの雛形など /var/lib/mysql ... データベースが配置される /var/lib/mysql/mysql.sock ... ソケットファイル /var/log/mysqld.log ... ログ /var/lock/subsys/mysqld ... 実行中のロックファイル /var/run/mysqld/mysqld.pid ... 実行中のPIDファイル /etc/init.d/mysqld ... サービス起動シェル
この中で重要なのは設定ファイルの /etc/my.cnf くらい。
あとは変更しないので気にしなくてよい。
(3) 設定
/etc/my.cnf
[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql # Default to using old password format for compatibility with mysql 3.x # clients (those using the mysqlclient10 compatibility package). old_passwords=1 # まず文字エンコードのデフォルト設定 # 今時、utf8 以外ありえない # 5.5では不要(書くとエラー) #default-character-set = utf8 # 5.0以降のサーバー文字コード character-set-server = utf8 # ここから、いつもの最低限のチューニング ============= # サーバーのスペックや状況によって多少変える # MySQLクライアントの同時接続最大数 max_connections=100 # スレッドの作成・削除は負荷重いのでキャッシュ必要 thread_cache_size=20 # テーブルキャッシュ。I/O減らすのに有効 table_open_cache=1024 # MyISAMインデックスをバッファに保存するサイズ key_buffer_size=32M # メモリ内に生成されるテンポラリテーブルのサイズ # max_heap_table_size とセットで考える tmp_table_size=64M max_heap_table_size=64M # InnnoDBのバッファのプールサイズ # よく多めにと言われるけどhttpdも動いているなら慎重に innodb_buffer_pool_size=256M # ログファイルのサイズ。増やすとパフォーマンスアップ # これも多めにと言われるけど大きすぎると障害時復旧が大変 innodb_log_file_size=64M # テーブルごとにファイルを分ける。鉄板。 innodb_file_per_table # タイムアウト値を設定しないとデフォルトは8時間だから wait_timeout=240 # ここまで、いつもの最低限のチューニング ============= # 5.5では不要 #[mysql] #default-character-set = utf8 # 5.0以降のクライアント設定 [client] default-character-set = utf8
MySQLを再起動
# /etc/rc.d/init.d/mysqld start
(4) 運用中のMySQLの設定ファイルを変更したときの注意
innodb_buffer_pool_size
innodb_log_file_size
あたりを変更したときは、
MySQLを停止 #/etc/rc.d/init.d/mysqld stop トランザクションログファイルを削除して # rm -rf /var/lib/mysql/ib_logfile0 # rm -rf /var/lib/mysql/ib_logfile1 # ls -l /var/lib/mysql MySQLを再起動 # /etc/rc.d/init.d/mysqld start