ワードプレスを複数サーバで同期
Mysqlをレプリケーションして、画像を同期させる方法でやる
ワードプレス同期方法
■マスターサーバ側
1.my.cnfを編集
vi /etc/my.cnf
[mysqld] #バイナリログをとる log-bin #識別ID、スレーブとユニークじゃなきゃダメ server-id=1
バイナリログとは、クエリを保存してるファイル
詳しく知りたければこちら
http://open-groove.net/mysql/mysql-binlog/
2.再起動
/etc/init.d/mysqld restart
3.mysqlにログイン
$ mysql -u root -p
4.レプリケーション用ユーザを製作
GRANT REPLICATION SLAVE ON *.* TO repl@192.XXX.XXX.XXX IDENTIFIED BY 'passwd';
5.マスターのステータスを記録
SHOW MASTER STATUS;
+-----------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +-----------------+----------+--------------+------------------+ | data-bin.000001 | 105 | | | +-----------------+----------+--------------+------------------+ 1 row in set (0.00 sec)
※後で使うので上の「data-bin.000001」「105」をメモっておく
6.DBの同期をしてなかったらする
また、必要であればテーブルロックしたりする
http://d.hatena.ne.jp/susan-style/20120520/1337499011
■スレーブサーバ側
7.my.cnfにサーバIDと更新するDB&テーブルを定義する
vi /etc/my.cnf
[mysqld] #識別ID、マスターとユニークじゃなきゃダメ server-id=2 # レプリケーション対象テーブル replicate-do-table=wordpress.wp_postmeta replicate-do-table=wordpress.wp_posts replicate-do-table=wordpress.wp_term_relationships replicate-do-table=wordpress.wp_terms replicate-do-table=wordpress.wp_term_taxonomy #URLを変えている場合は replicate-do-table=wordpress.wp_options
分かると思うけど
replicate-do-table=[データベース名].[テーブル名]
8.再起動
/etc/init.d/mysqld restart
9.mysqlにログイン
$ mysql -u root -p
mysql> CHANGE MASTER TO MASTER_HOST='XXX.XXX.XXX.XXX', MASTER_USER='repl', MASTER_PASSWORD='passwd', MASTER_LOG_FILE='data-bin.000001', MASTER_LOG_POS=105;
MASTER_HOST マスターのIPアドレス
MASTER_USER 4で設定したユーザ名
MASTER_PASSWORD 4で設定したパスワード
MASTER_LOG_FILE 5でメモったログファイル
MASTER_LOG_POS 5でメモったログポス
10.最後に開始してOK
mysql> START SLAVE;
奴隷開始!