adminレプリケーションとは2つのMySQLサーバでデータを同期する仕組み。マスターサーバのデータをスレーブサーバにコピーする。スレーブサーバは常に起動している必要はなく、起動時に一括でマスターからコピーできる。スレーブでの更新はマスターには影響しないので、通常は更新作業はすべてマスターで行うものと思われる。スレーブは複数あっていい。レプリケーションはバイナリーログを利用する。マスターはデータの追加や更新を「イベント」としてバイナリーログに書き込む。スレーブはこのログを読んで自身のデータを更新する。このときスレーブはバイナリーログのどこから実行するかの情報をちゃんと自分で持っている。設定によってスレーブは特定のデータベースだけをレプリケーションしたりできる。マスターとスレーブにはユニークなID(server-id)を割り付けなければならない。ここではすでにマスターにはデータがあり、マスターのserver-idとバイナリーログ有効の設定は有効にしてあり、レプリケーション用ユーザreplも存在するのもとする。このマスターは最初からバイナリーログがとられているわけではないものとする。そのときの新しくスレーブを立ち上げたときのことを考える。スレーブがレプリケーションするデータベースはdddだけとする。マスターのバイナリログの現在の状況を確認してバックアップをとるスレーブのデータベースは空なので、マスターのデータをまず持ってこなくてはならないが、マスターのバイナリーログとの整合性が狂うとまずいので、テーブルの更新を止めてからバイナリーログの状況を確認し、その後バックアップを取る。マスターにコマンドラインからログインして、更新を止め、バイナリーログの状態を確認する。sec)mysql>このコマンドラインはこのままにして(抜けるとロック外れる)、他のコマンドラインからデータベースdddをファイルにコピーする。ddd.sql終わったら、mysqlのコマンドラインも抜ける。これでバイナリーログの状態とバックアップファイルができた。スレーブに今作ったバックアップファイルからコピーするスレーブにddd.sqlを持ってくる。最初にデータベースdddを作る。ddd;次にddd.sqlを流し込む。ddd.sqlスレーブにserver-idを割り付けるまずスレーブにserver-idを割り当てる。my.cnfの[mysqld]セクションに設定を行う。server-idは適当な数字でいい。(1~4294967295)。[mysqld]server-id=432423スレーブを起動し、コマンドラインに入って、レプリケーションの設定をする。sec)mysql>MASTER_LOG_FILEとMASTER_LOG_POSの値は上で確認したマスターのバイナリーログの状態を入力する。他のホストとかユーザとかは自分のものに合わせる。これでmaster.infoができ、ここにバイナリーログの状態が保存されているはず。スレーブを終了しmy.cnfにちゃんとしたレプリケーション情報を書く。[mysqld]server-id=432423master-host=192.168.0.100master-user=replmaster-password=passreplicate-do-db=dddスレーブを起動し、マスターで変更した情報がスレーブに反映されるかを確認する。