php spot
phpが使えるレンタルサーバー特集
検索グラス
トップページへ

MySQLレプリケーション設定
レプリケーションの設定をするには、まずコピー元であるマスターとコピー先であるスレーブにマシンを分けて考えます。マスター、スレーブ、それぞれに別の設定が必要です。
その設定は以降に書きます。

マスターのマシンで以下のSQL文でユーザを追加する。

mysql> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO repl@"192.168.1.0/255.255.0.0" IDENTIFIED BY 'pass';

更にマスターのマシンで、次のSQLを実行してユーザ権限を反映させる。

mysql> FLUSH PRIVILEGES

ここでは、マスターに USER: repl , PASS: pass としてユーザを作成した。

192.168.0.0/255.255.0.0 の部分は、スレーブの属するネットワークに設定しましょう。

次に、マスター,スレーブの my.cnf(MySQLの設定ファイル) を開きます。

マスタのmy.cnfには、次のように追記します。

log-bin = /var/db/repl/binary-log
server-id = 1

server-id はMySQLサーバの重複のしないIDを指定します。
log-bin は、サーバでのSQLトランザクションをバイナリ形式で保存します。
保存できるように、指定パスのディレクトリがない場合は作成する必要があります。
出力されたバイナリログは mysqlbinlog コマンドで表示することが出来ます。

スレーブのmy.cnfには、次のように追記します。

server-id = 2
master-host = マスタのホスト名(master-db.example.co.jp)
master-user = repl
master-password = pass
master-port = 3306
    
server-id はMySQLサーバの重複のしないIDを指定します。
master-hostにはホスト名、master-user,password には、マスターで作成したmysqlのユーザID、パスを指定します。master-port にはマスターのmysqlサーバのポート番号を指定します。

これで先にマスタのmysqldを再起動し、次にスレーブのmysqldを再起動する。

再起動は次のコマンドで実行できる

$ mysqladmin -u root shutdown
$ mysqld_safe &

マスターが既に運用済みの場合で、スレーブにデータをコピーしたい場合は、
マスターのデータをバックアップしてスレーブにデータを移す。

データ量が少なく、スレーブ上でコピーしたい場合は、
マスターの repl ユーザに RELOAD , SUPER , SELECT 権限を付与し、次のコマンドを実行することでマスターのデータを一括コピーできる。

mysql> use データベース名;
mysql> LOAD TABLE テーブル名 FROM MASTER;

スポンサードリンク


管理人の新着ブログ記事

    プライバシーポリシー | お問い合わせ
copyright © 2003-2024 phpspot all rights reserved. powered by phpspot CMS.