MySQL-マルチマスターの構成(バージョン8.0.18)
5863 ワード
1.現実背景
既存の4台のホストは、いずれも自動的にデータを収集し、MySQLデータベースに格納することができ、データの処理に特化した高構成ホストサーバが1台ある.この5台の機器は常に同一のネットワークセグメントの下にいないが,同一のネットワークセグメントの下にあると,データ収集用のホスト4台が自動的にプライマリサーバにデータを集約できるように環境を構成することが望ましい.
2.用語約定 slave、プライマリサーバ master 1、データ収集用のホスト master 2、データ収集用のホスト master 3、データ収集用のホスト master 4、データ収集用のホスト 3.マスターの構成
3.1. 起動パラメータの設定
複数のmasterはserver-idが一致しないことを確認するだけで、その他は自分のニーズに応じて構成できます.
3.2. サービスを再起動してパラメータを有効にする
3.3. rootとしてログインし、ユーザーを作成し、パスワードを付与し、権限を付与し、権限をリフレッシュします.
ユーザーreplicationを作成し、パスワードを付与します.
ユーザーの作成に失敗した場合は、すでにユーザーが存在する可能性があります.重要でない場合は、ユーザーを削除できます.
再構築ユーザーを削除しない場合は、パスワードのみを変更します.
ユーザーreplication slave権限を付与するには、次の手順に従います.
Replication slave権限がすぐに有効になることを保証し、権限をリフレッシュします.
4.slaveサーバの構成
4.1. 起動パラメータの設定
4.2. サービスを再起動してパラメータを有効にする
5.マルチマスターマスターの構成
5.1. マスターステータスの表示
rootとしてmaster 1にログインするには、file、positionに注意する必要があります.
rootとしてmaster 1にログインするには、file、positionに注意する必要があります.
説明:MySQLを起動すると、新しいlog-binが強制的に生成されるため、場所は155です.
5.2. slaveとmasterの関連付けの構成
残りの構成があるかどうかを確認します.
slaveを停止し、残りの構成をクリアします.
master 1のfileに従って、positionはreplicationチャネル「master 1」を構成する
master 2のfile,positionに従ってreplicationチャネル「master 2」を構成する master_connect_retry:接続に失敗しました.再試行間隔(単位:秒) master_retry_count:接続に失敗した再試行回数、0は無限次 5.3. テーブルの準備
起動前に、3台のマシンのデータベースでDDL文を使用してテーブル構造を定義し、テーブル構造が一致していることを確認し、プライマリ・スレーブのレプリケーション前の一貫性を確保します.そうしないと、エラーが発生します.
5.4. slaveを起動し、slaveステータスを表示
注意Slave_IO_RunningとSlave_Slave_RunningはいずれもYesと表示してから成功を示す必要があります.そうしないと、エラーメッセージに注意してください.
over
既存の4台のホストは、いずれも自動的にデータを収集し、MySQLデータベースに格納することができ、データの処理に特化した高構成ホストサーバが1台ある.この5台の機器は常に同一のネットワークセグメントの下にいないが,同一のネットワークセグメントの下にあると,データ収集用のホスト4台が自動的にプライマリサーバにデータを集約できるように環境を構成することが望ましい.
2.用語約定
3.1. 起動パラメータの設定
複数のmasterはserver-idが一致しないことを確認するだけで、その他は自分のニーズに応じて構成できます.
[mysqld]
# ,
server-id = 1000
# master log_bin
# mysql-bin , mysql-bin.index、mysql-bin.000001
log_bin=mysql-bin
# ( : ), 0,
expire_logs_days = 0
#
log-error=/var/lib/mysql/mysql-error.log
# log_bin , , mysql-bin.000002
max_binlog_size = 100M
# mysql
basedir=/var/lib/mysql
# mysql
datadir=/var/lib/mysql
# master
binlog_do_db=replication
# master
binlog_ignore_db=information_schema
binlog_ignore_db=performance_schema
binlog_ignore_db=sys
binlog_ignore_db=mysql
#
binlog_format=MIXED
# blob ( : 、B)
# 1048576 B = 1MB
max_allowed_packet=1048576
# ,
# 0
# validate_password_length=8
#
# validate_password_mixed_case_count=1
#
# validate_password_number_count=1
#
# validate_password_special_char_count=1
innodb_flush_log_at_trx_commit=0
[mysql]
default-character-set=utf8mb4
[client]
default-character-set=utf8mb4
3.2. サービスを再起動してパラメータを有効にする
3.3. rootとしてログインし、ユーザーを作成し、パスワードを付与し、権限を付与し、権限をリフレッシュします.
ユーザーreplicationを作成し、パスワードを付与します.
create user 'replication'@'%' identified with mysql_native_password by 'JINGhuaSHUIyue123,.';
ユーザーの作成に失敗した場合は、すでにユーザーが存在する可能性があります.重要でない場合は、ユーザーを削除できます.
drop user 'replication'@'%';
再構築ユーザーを削除しない場合は、パスワードのみを変更します.
alter user 'replication'@'%' identified with mysql_native_password by 'JINGhuaSHUIyue123,.';
ユーザーreplication slave権限を付与するには、次の手順に従います.
grant replication slave on *.* to 'replication'@'%';
Replication slave権限がすぐに有効になることを保証し、権限をリフレッシュします.
flush privileges;
4.slaveサーバの構成
4.1. 起動パラメータの設定
[mysqld]
# ,
server-id = 2000
# mysql
basedir=D:\mysql
# mysql
datadir=D:\mysql\data
# slave
replicate_do_db=test
# slave
replicate_ignore_db=information_schema
replicate_ignore_db=performance_schema
replicate_ignore_db=mysql
replicate_ignore_db=sys
# slave ( : )
slave_net_timeout=60
[mysql]
default-character-set=utf8
[client]
default-character-set=utf8
4.2. サービスを再起動してパラメータを有効にする
5.マルチマスターマスターの構成
5.1. マスターステータスの表示
rootとしてmaster 1にログインするには、file、positionに注意する必要があります.
show master status;
+------------------+----------+--------------+-------------------------------------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+-------------------------------------------------+-------------------+
| mysql-bin.000006 | 155 | test | information_schema,performance_schema,sys,mysql | |
+------------------+----------+--------------+-------------------------------------------------+-------------------+
rootとしてmaster 1にログインするには、file、positionに注意する必要があります.
show master status;
+------------------+----------+--------------+-------------------------------------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+-------------------------------------------------+-------------------+
| mysql-bin.000005 | 155 | test | information_schema,performance_schema,sys,mysql | |
+------------------+----------+--------------+-------------------------------------------------+-------------------+
説明:MySQLを起動すると、新しいlog-binが強制的に生成されるため、場所は155です.
5.2. slaveとmasterの関連付けの構成
残りの構成があるかどうかを確認します.
show slave status\G;
slaveを停止し、残りの構成をクリアします.
stop slave;
reset slave all;
master 1のfileに従って、positionはreplicationチャネル「master 1」を構成する
change master to
master_host = '112.124.1.100',
master_user = 'replication',
master_port = 3306,
master_password = 'replication',
master_log_file = 'mysql-bin.000006',
master_log_pos = 155,
master_connect_retry = 15,
master_retry_count = 0
for channel 'master1';
master 2のfile,positionに従ってreplicationチャネル「master 2」を構成する
change master to
master_host = '192.168.1.139',
master_user = 'replication',
master_port = 3306,
master_password = 'JINGhuaSHUIyue123,.',
master_log_file = 'mysql-bin.000005',
master_log_pos = 155,
master_connect_retry = 15,
master_retry_count = 0
for channel 'master2';
起動前に、3台のマシンのデータベースでDDL文を使用してテーブル構造を定義し、テーブル構造が一致していることを確認し、プライマリ・スレーブのレプリケーション前の一貫性を確保します.そうしないと、エラーが発生します.
5.4. slaveを起動し、slaveステータスを表示
start slave for channel 'master1';
start slave for channel 'master2';
show slave status\G;
注意Slave_IO_RunningとSlave_Slave_RunningはいずれもYesと表示してから成功を示す必要があります.そうしないと、エラーメッセージに注意してください.
over