データベースのマスター/スレーブ同期

1: 3 つの仮想マシンまたは 3 つのコンテナを開きます

docker run -itd --name mysql_m -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.35

docker run -itd --name mysql_s1 -p 3308:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.35

docker run -itd --name mysql_s2 -p 3309:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.35

2: 1台をマスター、残りの2台をスレーブに設定します。

 docker cp 容器名称:/etc/mysql/conf.d/docker.cnf m.cnf
 三个复制过来,主mysql的上面加上
 设置server-id
 开启bin-log
 
 从机上只用加server-id
 三个的server-id应该不同

ホスト


[mysqld]
skip-host-cache
skip-name-resolve
server-id=1
log-bin=master-bin

から


[mysqld]
skip-host-cache
skip-name-resolve
server-id=2

変更が完了したら、対応するファイルを対応するコンテナに配置します。

3: メインのセットアップ

1: データベースに入り、ユーザーを作成します

create user 'rep'@'%' identified by '123456';

2: 新規ユーザーを承認する

 grant replication slave on *.* to 'rep'@'%';

3: 権限を更新する

flush privileges;

4: 新しいユーザーとしてログインしてみる

mysql -urep -p123456

5: ログ番号とポジション番号を確認する

 show master status;

4: スレーブをセットアップする

change master to
master_host="192.168.128.138",master_port=3307,
master_user="rep",
master_password="123456",
master_log_file="master-bin.000001",
master_log_pos=737;

strat slave;

5: 検証

show smile status \G
下の 2 つが両方とも
YESの場合に有効です

おすすめ

転載: blog.csdn.net/m0_51828898/article/details/131760598