どのようにUbuntu 16.04の下でMySqlのGRを使うか?


はじめに
この記事は主にピュアなシステムからMySql 5.7.17をインストールする方法を記録し、GRを使用して、自分の後期の閲覧と共有を容易にする。
二、mysqlを取り付ける
デフォルトのuuntuのソースは最新のmysqlではないので、次のような手順で最新のインストールパッケージをインストールする必要があります。もちろんここで使うアプリをインストールします。
1.アプリ倉庫をダウンロードする
sudo wget https://repo.mysql.com//mysql-apt-config_0.8.3-1_all.deb
2.app倉庫の設置
sudo dpkg-i mysql-ap-config_0.8.3-1_all.deb
インストール中にバージョンを選択するインターフェースが現れます。ここでは最初のバージョンを5.7で選択すればいいです。もちろん8.0を選択してもいいです。
3.apt倉庫をアップグレードし、mysqlをインストールする

sudo apt-get update
sudo apt-get install mysql-server
これまで最新のMySqlバージョンをインストールしました。以下はキーの配置部分です。まず通読してください。直接に上に上がってこないでください。
三、GRを開く
1.設定の変更
まず、/etc/mysql/下のmy.cnf設定を開き、以下の構成情報を書き込みます。

server_id=1
bind-address=0.0.0.0
gtid_mode=ON
enforce_gtid_consistency=ON
master_info_repository=TABLE
relay_log_info_repository=TABLE
binlog_checksum=NONE
log_slave_updates=ON
log_bin=binlog
binlog_format=ROW
transaction_write_set_extraction=XXHASH64
loose-group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
loose-group_replication_start_on_boot=off
loose-group_replication_local_address= "10.0.0.4:24901"
loose-group_replication_group_seeds= "10.0.0.4:24901,10.0.0.5:24902,10.0.0.6:24903"
loose-group_replication_bootstrap_group= off
ここで説明したい構成があります。その中に「server_」というものがあります。ID」はマシンごとに異なることを保証し、IPアドレスの第四部分を直接使用できるようにしてください。「loose-group_」replication_グループnam」は各マシンで一致しています。これは一つのグループの標識と同じです。残りのもう一つの違いはパラメータ「loose-group_」です。replication_local_addressこれは現在のマシンのIPアドレスとして指定しなければならないが、後ろのポートはGRが傍受する必要があるポートを表しています。他のマシンのパラメータ「loose-group_」を保証してください。replication_グループseeds」におけるマシンのIPアドレスとポートは、任意にこのポートを修正することができる(このポートはmysqlデフォルトの3306ポートから独立している)。
以上の操作を完了したら、mysqlサービスを再開します。

sudo service mysql restart
2.新規ユーザ
まず現在のデータベースに接続します。

mysql -u root -p
以下のsql文を実行します。

 mysql> SET SQL_LOG_BIN=0;
 mysql> CREATE USER rpl_user@'%';
 mysql> GRANT REPLICATION SLAVE ON *.* TO rpl_user@'%' IDENTIFIED BY 'rpl_pass';
 mysql> FLUSH PRIVILEGES; #          
 mysql> SET SQL_LOG_BIN=1;
mysql> CHANGE MASTER TO MASTER_USER='rpl_user', MASTER_PASSWORD='rpl_pass' FOR CHANNEL 'group_replication_recovery';
生産環境であれば、ユーザーが自分で対応するアカウントとパスワードを設定できます。ここではテストとして直接に公式の提供を使います。
3.プラグインのインストール
私達は引き続き対応するsql文を実行します。

mysql> INSTALL PLUGIN group_replication SONAME 'group_replication.so';
現在プラグインがインストールされているかどうかを確認したいなら、以下の文で調べられます。

mysql> SHOW PLUGINS;
4.Hostsの配置
最終的なGRを開く前に対応するhostsを修正して、ホスト名とIPを対応させます。そうでないと、後ろは他のノードに接続する時に接続できなくなります。mysqlはホスト名に依存して接続します。
ホームを開く
sudo vim/etc/hosts
下記の内容を書き込みます。

10.0.0.4 mysql-1
10.0.0.5 mysql-2
10.0.0.6 mysql-3
上の配置を完成したら退出して、私達はmysqlの中に入って引き続き実行します。
5.GRを開く
以下の方式はメインノードのオープンモードです。

mysql> SET GLOBAL group_replication_bootstrap_group=ON;
mysql> START GROUP_REPLICATION;
mysql> SET GLOBAL group_replication_bootstrap_group=OFF;
従属ノードでは次の文を実行します。

mysql> START GROUP_REPLICATION;
現在成功しているかどうかを確認するなら、次のような文言で確認できます。

mysql> SELECT * FROM performance_schema.replication_group_members;
これまでの配置は全部終わりました。他の従属ノードは上記の手順で実行すればいいです。テストに対しては、メインノードにデータベースを新規作成し、テーブルを作成してデータを書き込む必要があります。他のデータベースも同期します。メインノードを閉じた後、以下の文を通じて
現在どのノードがメインノードなのか調べられます。

mysql> select *from performance_schema.replication_group_members where member_id =(select variable_value from performance_schema.global_status WHERE VARIABLE_NAME= 'group_replication_primary_member');
Xmarin.Android->Xmarin.IOS->ミックス->Xmarin.Forms
以上述べたように、Ubuntu 16.04でMySqlを使っているGRを紹介しました。皆さんに何か質問があれば、メッセージをください。編集者はすぐに返事します。ここでも私たちのサイトを応援してくれてありがとうございます。