-
Notifications
You must be signed in to change notification settings - Fork 35
MySQL replication support (Deprecated) JP
Takehiro YOSHIHAMA edited this page Jul 5, 2016
·
1 revision
バージョン1.0.2から実験的にFlareからMySQLへのレプリケーションをサポートしています。現在MySQL 5.0.32をslaveにした場合のみテストしています(MySQL 4.0.xではおそらく動作しません)。
MySQLレプリケーションを行う場合は、flared.confに下記の行を追加します(--enable-mysql-replicationでconfigureされている必要があることに注意してください):
# MySQLレプリケーションスレッド起動(利用しない場合はコメントアウト)
mysql-replication = true
# MySQLレプリケーションポート
mysql-replication-port = 12122
# MySQLレプリケーションサーバID
mysql-replication-id = 16
# MySQLレプリケーションデータベース
mysql-replication-db = flare
# MySQLレプリケーションテーブル
mysql-replication-table = flare
以上の状態でflareを起動しておきます。
まず上記設定合わせたデータベース、テーブルを準備します。
mysql> CREATE DATABASE flare;
Query OK, 1 row affected (0.00 sec)
mysql> use flare;
Database changed
mysql> CREATE TABLE flare
(k VARCHAR(255) NOT NULL,
v MEDIUMBLOB,
flag INT UNSIGNED,
version BIGINT UNSIGNED,
expire DATETIME,
PRIMARY KEY(k)) CHARSET=binary;
Query OK, 0 rows affected (0.01 sec)
スキーマは上記のものである必要がありますが、カラム名はなんでもかまいません。
続いてCHANGE MASTERします。
mysql> CHANGE MASTER TO master_host='flare.example.com',
master_port=12122,
master_user='foo',
master_password='bar';
Flareのレプリケーションスレッドはクライアント認証を行わないので、master_user、master_passwordは何を設定しても問題ありません。
以上が完了したら
mysql> START SLAVE;
でレプリケーションを開始します。masterでsetコマンド等を実行するとデータがflare.flareテーブルに反映されていると思います。
- 通常のMySQLのレプリケーションと異なりbinlogを利用していないため、「ポジション」という概念はありません~ レプリケーション開始以降にmasterへ発行されたクエリのみがレプリケーションされていきます(それ依存のデータについては手動でのdumpとinsertを行ってください)
- Flareのレプリケーションスレッドはクライアント認証を行っていません