#はじめに
MySqlのソースビルドが5.6から色々変わってきているようでしたので備忘録までに。
尚、マスター側だけ見れば単一構成での運用にも対応します。
実際のレプリケーションの作業は後編をご覧下さい
#MySqlソースビルド・マスター側
##マスター側インストール
wget mysql5.6のダウンロードアドレス tar zxvf mysqlのダウンロードアーカイブ.tar.gz cd 解凍してできたディレクトリ yum install bison yum install gcc yum install gcc-c++ yum install ncurses-devel yum install cmake cmake . \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_TCP_PORT=3306 \ -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci \ -DMYSQL_UNIX_ADDR=/tmp/mysql_master.sock make make install
##マスタ側設定開始
groupadd mysql useradd -g mysql mysql cd /usr/local/mysql ./scripts/mysql_install_db --datadir=/usr/local/mysql/data --user=mysql
##マスタ側権限付与と設定ファイル設置
chown -R mysql.mysql /usr/local/mysql cp ./support-files/my-default.cnf /usr/local/mysql/my.cnf
#MySqlソースビルド・スレーブ側
wget mysql5.6のダウンロードアドレス tar zxvf mysqlのダウンロードアーカイブ.tar.gz cd 解凍してできたディレクトリへ yum install bison yum install gcc yum install gcc-c++ yum install cmake cmake . \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql_slave \ -DMYSQL_TCP_PORT=13306 \ -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci \ -DMYSQL_UNIX_ADDR=/tmp/mysql_slave.sock make make install
##スレーブ側設定開始
groupadd mysql useradd -g mysql mysql cd /usr/local/mysql ./scripts/mysql_install_db --datadir=/usr/local/mysql/data --user=mysql
##スレーブ側権限付与と設定ファイル設置
chown -R mysql.mysql /usr/local/mysql_slave // スレーブ側 my.cnfの設置 cp ./support-files/my-default.cnf /usr/local/mysql_slave/my.cnf
#マスター側のmy.cnf書式
[mysqld]
log-bin =mysql-bin
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
server_id = 1
socket = /tmp/mysql_master.sock
pid-file=/usr/local/mysql/data/mysqld.pid
[client]
port=3306
socket = /tmp/mysql_master.sock
#スレーブ側のmy.cnf書式
[mysqld]
basedir = /usr/local/mysql_slave
datadir = /usr/local/mysql_slave/data
port = 13306
server_id = 13306
socket = /tmp/mysql_slave.sock
pid-file=/usr/local/mysql_slave/data/mysqld.pid
[client]
port=13306
socket = /tmp/mysql_slave.sock
##マスター側のMySQL起動スクリプト設置
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld_master
##マスター側のMysql起動スクリプト編集
vi /etc/init.d/mysqld_master
###マスタの書式283行目を書き換え
Before
$bindir/mysqld_safe --datadir="$datadir"--pid-file="$mysqld_pid_file_path" $other_args >/dev/null 2>&1 &
After
$bindir/mysqld_safe --defaults-file=/usr/local/mysql/my.cnf >/dev/null 2>&1 &
##スレーブ側のMySQL起動スクリプト設置
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld_slave
##スレーブ側のMySQL起動スクリプト編集
vi /etc/init.d/mysqld_slave
###スレーブの書式283行目を書き換え
Before
$bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null 2>&1 &
After
$bindir/mysqld_safe --defaults-file=/usr/local/mysql_slave/my.cnf >/dev/null 2>&1 &
サービスへの登録
マスター側のサービス登録
chkconfig --add mysqld_master chkconfig mysqld_master on
スレーブ側のサービス登録
chkconfig --add mysqld_slave chkconfig mysqld_slave on
クライアント接続
※当然の事ですが、マスター・スレーブ双方のユーザーパスワードは個別に設定しておくように。
マスターへの接続
mysql -u root
こちらは既にパスを通してあるのでこれで良い。
スレーブへの接続
/usr/local/mysql_slave/bin/mysql -u root -P 13006
誤操作を避ける為、パスは通していないので上の通り明示的にパスとポートを指定してあげる。