LoginSignup
23
24

More than 5 years have passed since last update.

CentOSでMySQL5.5いれてマルチマスターレプリケーション組むまで

Posted at

MySQL使ってますか?

近年はMariaDBとかMongoDBとかNoSQLとかがでてきていろいろにぎやかになっているDB業界ですが、

「わたしのことは嫌いになってもMySQLのことは嫌いにならないでください!」

MySQLの5.5使ってマルチマスターレプリケーション組むとこまでを久々にやったので書いてみます。

CentOS6.5にMySQL5.5を入れる

以下のコマンドでまずはリポジトリ追加しましょう。

## EpelとRemiを入れる
rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

そのあとyumでRemiリポジトリ指定でMySQL関連のソフトを一気にいれます。

## MySQLの5.5をremiから
yum --enablerepo=remi install mysql-server mysql mysql-libs mysql-devel

これでインストールは終わりです。もっと何かしたかったですか? ゴメンナサイ! これだけです!

レプリケーションの設定

じゃあさっそくレプリケーションを組んでいきましょう。
今回はマルチマスターを作りたかったので、マルチマスターレプリケーションを作ります。セミシンクロナイズ(準同期)レプリケーションについてはまた別記事で書きますね。

マスター1側

マスター1側のmy.cnfは以下。

my.cnf
[mysqld]
server-id = 101
log-bin = /var/lib/mysqllogs/bin-log
auto_increment_increment=5
auto_increment_offset=1

マスター2側

次にマスター2のmy.cnfは以下

my.cnf
[mysqld]
server-id = 102
log-bin = /var/lib/mysqllogs/bin-log
auto_increment_increment=5
auto_increment_offset=2

マスターホストの指定方法

ちなみ普通CentOSでyumでMySQLいれると5.1系が入りますが、5.1系でレプリケーション組むことになれちゃっているひとは5.5、5.6にしたら注意です。
5.5以降から設定ファイルに

my.cnf
master-host= [もう一台のサーバのIP]
master-port=3306
master-user=[スレーブ用のユーザ]
master-password=[パスワード]

を書けなくなりました。
MySQL起動後にchange master to〜〜〜を使います。

CHANGE MASTER TO
MASTER_HOST = '{MASTERHOSTNAME}', 
MASTER_USER = '{MASTERUSERNAME}', 
MASTER_PASSWORD = '{MASTERPASSWORD}'
MASTER_PORT={CONNECTPORT};

共通コマンド

以下を実行します。

## スレーブユーザの登録
GRANT REPLICATION SLAVE ON *.* TO 'slave-user'@'%' IDENTIFIED BY 'slave-password';

## マスターの指定
CHANGE MASTER TO MASTER_HOST = '[IPADDRESS]', MASTER_USER = '[USER]', MASTER_PASSWORD = '[PASSWORD]',MASTER_PORT=3306;

## スレーブの開始
start slave;

これでレプリケーションが開始されます。

確認方法

片方でテーブル作成、もう片方でinsertなどをやってみるとよいと思います。あとどうしてもpositionがずれるとかそういうトラブルがある場合は、一度データ移動して「reset slave」をかけるとうまく行きます。またその際はコピーされるDBの更新処理をとめるのも忘れずに。

では楽しいMySQLライフを!

23
24
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
23
24