CentOS7(2)マスタースレーブレプリケーションでのMySQL8クラスター操作の練習

マスタースレーブレプリケーションの原則の概要:

  • マスターサーバーのデータが送信されると、データはバイナリログに書き込まれます
  • スレーブサーバーは、IOスレッドを介してバイナリログログを監視し、ログが変更されると、内容をリレーログ(リレーログ)に読み書きします。
  • リレースレッドはリレーログを監視し、ログが変更されると、ログの増分書き込み操作が1回実行され、データファイルに書き込まれます。

ハードウェア計画(仮想マシン)

CPU名

S

IP

使用する

備考

Cent OS 7_107

Cent OS7

1 92.168.1.107

MのASTER / 書き込み

Mysql 8

Cent OS 7_108

Cent OS7

1 92.168.1.108

スレーブ/読み取り

Mysql 8

Cent OS 7_109

Cent OS7

1 92.168.1.109

スレーブ/読み取り

Mysql 8

1つのマスターと2つのスレーブの3つの仮想マシンを作成します。

マスタースレーブレプリケーションの具体的な実装手順:

  1. マスターマスターサーバーの設定
  • my.cnfを変更する

             

vi /etc/my.cnf

               #バイナリファイルを有効にする

               log-bin = mysql-bin

              #マスターをサーバーと区別するために使用されるサーバーの一意のIDを設定します。

              server-id = 107

  • Mysqlサービスを再起動します。
systemctl restart mysqld
  • Mysqlにログインしてスレーブサーバーを認証する
mysql -uroot -p

mysqlパスワードを入力し、Enterキーを押してmysqlインターフェースに入ります

  • マスターライブラリにレプリケーションスレーブのアクセス許可を持つアカウントを作成し、スレーブライブラリにバイナリログへのアクセスを提供します。
CREATE USER 'sluser'@'%' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE ON *.* TO 'sluser'@'%';
  • 権限を更新
flush privileges;
  • マスターステータスの表示
show master status;

         2. サーバー構成からのLave

サーバー108と109はスレーブサーバーです。以下では、108のスレーブサーバーの構成のみを示します。109と108の構成方法は同じであるため、ここでは繰り返しません。

  • my.cnfを変更する
vi /etc/my.cnf

次のコンテンツを追加

server-id = 108

replay-log = mysql-bin

  • mysqlにログインしてスレーブサーバーを設定します

マスターサーバーを監視するようにスレーブサーバーを設定する

CHANGE MASTER TO  MASTER_HOST='192.168.1.107',MASTER_USER='sluser',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=1707;

説明:

MASTER_HOST:マスターIPまたは仮想IPまたはドメイン名

MASTER_USER:以前にマスターで作成されたログインアカウント名

MASTER_PASSWORD:作成されたログインアカウントのパスワード

MASTER_LOG_FILE:マスター的ファイル

MASTER_LOG_POS:マスターの位置

  • サーバーからコピー機能を開始
start slave;
  • スレーブサーバーのステータスを表示する
show slave status \G

Slave_IO_Runningの場合:はい

Slave_SQL_Running:はい、スレーブサーバーが正常に構成され、マスター/スレーブレプリケーションの構成が完了したことを示します。

         3.マスター/スレーブレプリケーション機能をテストする

  • メインサーバーはデータベースを作成し、t_userテーブルを追加します
create database testdb;

use testdb;
DROP TABLE IF EXISTS `t_user`;

CREATE TABLE `t_user`  (

  `id` int(11) NOT NULL AUTO_INCREMENT,

  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,

  `age` int(11) NOT NULL,

  PRIMARY KEY (`id`) USING BTREE

) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

INSERT INTO `t_user` VALUES (1, 'test', 25);
  • サーバーからデータベースを表示する
show databases;

use testdb;

show tables;

select * from t_user;

マスターサーバーで作成されたテーブルと書き込まれたデータはスレーブサーバーでもクエリできることがわかります。これは、マスター/スレーブレプリケーション構成が成功したことを示しています。

おすすめ

転載: blog.csdn.net/java_cxrs/article/details/97043997