2012年5月9日水曜日

Installing MySQL 5.5 from source on CentOS5

※this text from livedoor blog 2012/1/17

既にMySQLが起動しているサーバに新たにMySQL 5.5をインストールして MySQLを複数起動した状態にします ※まっさらな状態からMySQLをインストールして複数起動するならばmysqld_multiを利用すると良いです makeに必要なライブラリをインストール
# yum install openssl
# yum install cmake
# yum install ncurses-devel
最新版のソースをダウンロードして解凍 http://www.mysql.com/downloads/mysql/ から最新版を探す
wget 'http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.20.tar.gz/from/http://ftp.iij.ad.jp/pub/db/mysql/'
tar zxfv  mysql-5.5.20.tar.gz
cd mysql-5.5.20
Configuration Optionsを設定 PORTは3307、インストールディレクトリを現在使用しているMySQLとは別のディレクトリを指定
# cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql_second \
-DMYSQL_DATADIR=/var/lib/mysql_second \
-DMYSQL_UNIX_ADDR=/var/lib/mysql_second/mysql.sock \
-DMYSQL_TCP_PORT=3307 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_SSL=yes
詳細なオプションは下記参照 http://dev.mysql.com/doc/mysql-sourcebuild-excerpt/5.5/en/source-configuration-options.html インストール
# make
# make install
設定ファイルを編集
# cp /usr/local/mysql_second/support-files/my-medium.cnf /usr/local/mysql_second/my.cnf
# emacs /usr/local/mysql_second/my.cnf

[mysqld]
datadir = /var/lib/mysql_second
max_connections = 1000
expire_logs_days = 30
innodb_buffer_pool_size = 200M
データディレクトリを作成
# /usr/local/mysql_second/scripts/mysql_install_db --datadir=/var/lib/mysql_second --basedir=/usr/local/mysql_second --defaults-file=/usr/local/mysql_second/my.cnf
MySQL用アカウント/グループ作成、データディレクトリの権限変更
# groupadd mysql
# useradd -g mysql -d /home/mysql mysql
# chown -R mysql:mysql /var/lib/mysql_second/
# chmod 755 /var/lib/mysql_second/
MySQLのスタート
# /usr/local/mysql_second/bin/mysqld_safe --defaults-file=/usr/local/mysql_second/my.cnf --user=mysql &
プロセスの確認
# ps -ax | grep mysql
起動ログの確認
# tail -f /var/lib/mysql_second/xxxxxxxx.err
接続テスト
# /usr/local/mysql_second/bin/mysql -uroot -P3307 --socket=/var/lib/mysql_second/mysql.sock
rootのパスワードを設定
# /usr/local/mysql_second/bin/mysqladmin -uroot -P3307 --socket=/var/lib/mysql_second/mysql.sock password 'your-password'
設定したパスワードで接続テスト
# /usr/local/mysql_second/bin/mysql -uroot -pyour-password -P3307 --socket=/var/lib/mysql_second/mysql.sock