mysqlをマスターとスレーブの構成でレプリケーションの設定をする。
マスター:windows
スレーブ:linux
マスターのデータベースをスレーブに複製する
- 両方のmysqlをストップする。
- マスターの「C:\mysql\data」をzipに圧縮する。
- スレーブのmysqlの中身を削除「rm -rf /var/lib/mysql/*」
- スレーブの「/var/lib/mysql」で解凍する。「unzip data.zip」
- 権限の変更「chmod -R 7777」。
SSHポートフォワーディングの設定
ssh -f -N -C -L 10000:localhost:3306 mysql@192.168.1.11 -p 22投稿を表示する
マスターのmysqlにレプリケーション用のユーザーを作成する
GRANT REPLICATION SLAVE ON *.* TO ‘レプリケーション用ユーザー名’@’127.0.0.1’ IDENTIFIED BY ‘レプリケーション用パスワード’;
FLUSH PRIVILEGES;
- REPLICATIONとSLAVEの権限を与える。
- 「*.*」:全てのデータベースのすべてのテーブル(データベース名.テーブル名)
- ユーザー名@アクセス元(どのコンピュータからの接続も受け付ける(ユーザー名@’%’))
mysqlの設定ファイルの編集
マスター(my.ini)
[mysqld]
log-bin
server-id=1
expire_logs_days = 30
スレーブ(/etc/my.cnf)
[mysqld]
server-id=2
report-host=192.168.1.11(スレーブサーバホスト名)
master-host=127.0.0.1(マスターサーバホスト名)
master_port=10000(ポートフォワーディング用ポート番号)
master-user=マスターに設定したレプリケーション用ユーザー
master-password=マスターに設定したレプリケーション用パスワード
再起動
- マスター・スレーブともに再起動
- mysql > START SLAVE;