6
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

mysql5.6をソースビルドしてマスター・スレーブで動かす[前編]

Last updated at Posted at 2014-05-06

#はじめに
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
誤操作を避ける為、パスは通していないので上の通り明示的にパスとポートを指定してあげる。

6
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?