ヒント:MySQLのInnoDBのクラスタグループレプリケーション依存モードの基礎となる、少なくとも3台のマシン
1.三のCentOSのLinux 7(コア)を準備し、各ホストの名前を変更:DB-HOST1、DB-HOST2、DB-HOST3は、各マシンホストは、以下に対応し、マップ設定します
猫<< EOF >>の/ etc / ホスト 192.168.50.181 DB- host1の 192.168.50.182 DB- host2の 192.168.50.183 DB- HOST3 EOF
3台のサーバが適切に相互にアクセスすることを確認してください2、保険の期間、ファイアウォールをオフにしてください、firewalld一般的のようなコマンドを使用:
#スタート firewalldを開始systemctl #閉じる systemctl停止firewalld #ビューステータス systemctlステータスfirewalld #ブートを無効 systemctl無効firewalld #電源オンは firewalldを有効systemctl #すべての開いているポートを見る ファイアウォール-CMD --zone =公共--list-ポート
DB-HOST1の実装、およびので、他:必ず使用するSSH 3.メイクはここのような、rootアカウントを使用して、訪問を共有しました:
SSH-keygenの- トンのRSA SSH -copy-ID -iの〜/ .ssh / id_rsa.pub 192.168.50.182 SSH -keygen - トンRSA SSH -copy-ID -iの〜/ .ssh / id_rsa.pub 192.168.50.183
4.バージョンに注意し、マシン3にインストールインストールのmysql-コミュニティサーバー、mysqlのシェルは、MySQL-ルータを準備します。
wgetのhttps://dev.mysql.com/get/mysql80-community-release-el7-3 .noarch.rpmで RPM -ivh mysql80-コミュニティリリースel7-3 .noarch.rpmで yumのMySQLのインストール -community、サーバーを
wgetのhttps://dev.mysql.com/get/Downloads/MySQL-Shell/mysql-shell-8.0.18-1 .el7.x86_64.rpm RPM -ivhのmysql-シェル-8.0.18-1 .el7.x86_64.rpm yumをインストールMySQLの -shell
wgetのhttps://dev.mysql.com/get/Downloads/MySQL-Router/mysql-router-community-8.0.18-1 .el7.x86_64.rpm RPM -ivhのmysql-ルータコミュニティ-8.0.17-1 .el7.x86_64.rpm yumのMySQLのインストール -routerを
初期化#:インストールMysqlServer、順次各初期化のMySQL、以下の工程の後5
mysqldを- 初期化。 #割り当てアクセス権:
chownコマンドのMySQL:MySQLのは/ var / libに/ MySQLの-R #スタートMySQLサービス:
systemctlスタートmysqld.service。 #mysqlのカイからのブートを設定
mysqlのsystemctl mysqldを可能にします。 #コマンドは、データベースのパスワードを表示する:
CATの/var/log/mysqld.logを| grepのパスワード #:mysqlのコマンドライン入力
のmysql-uroot - P(mysqlのコマンドラインにデータベースを表示するには、上記パスワードを入力してください)
#コマンドパスワードを変更するには:
で識別ALTER USER「ルート」@「localhostが」BY「パスワードをmysql_native_password 」; #リモート・アクセスの作成:
ユーザー「ルート」を作成します@「%」「をパスワード」でmysql_native_passwordで識別し、 GRANT ALL権限をON * * TO「ルートを」@「%を。」WITH GRANT OPTIONを使用しました。 フラッシュ権限;
6.依存グループコピーするので、ホスト1にな/etc/my.cnf変更
SERVER_ID = 4000000161 緩い -group_replication_group_name = " a38e32fd-5fb6-11e8-ad7a-00259015d941 " 緩い -group_replication_local_address = " 192.168.50.181:3306 " ゆるい -group_replication_group_seeds = " 192.168.50.181:3306,192.168.50.182:3306,192.168.50.183: 3306 「 緩い -group_replication_single_primary_mode = TRUE
図2に示すように、別のマシンにコピーされな/etc/my.cnf
rsyncの-e " sshの-p22 " -avpgolrな/etc/my.cnf [email protected]:の/ etc / のrsync -e " sshの-p22 " -avpgolrな/etc/my.cnf [email protected]ます。/ etc /
そのSERVER_IDとアドレスのことを確認してください。
HOST1 SERVER_ID = 4000000161
ルーズgroup_replication_local_address = "192.168.50.181:3306"
host2の SERVER_ID = 4000000162
ルーズgroup_replication_local_address = "192.168.50.182:3306"
HOST3 SERVER_ID = 4000000163
ルーズgroup_replication_local_address = "192.168.50.183:3306"
7.3台湾のMySQLサーバの起動グループのコピー
スタートgroup_replication
mysqlshを使用した構成例を確認してください8。
dba.checkInstanceConfiguration( 'ルート@ DB-ます。host1:3306 ') dba.checkInstanceConfiguration( 'ルート @ DB-host2に:3306 ') dba.checkInstanceConfiguration( 'ルート @ DB-HOST3:3306')
8.設定例
dba.configureInstance( 'DB-HOST1 @ルート:3306'、{ '再起動':真}) dba.configureInstance('root@db-host2:3306',{'restart': true}) dba.configureInstance('root@db-host3:3306',{'restart': true})
9. 创建添加实例
var cluster = dba.createCluster('mycluster'); var cluster=dba.getCluster('mycluster') cluster.addInstance('root@db-host2:3306'); cluster.addInstance('root@db-host3:3306');
10. 登录主服务器 ,查看,配置成功
mysql> select * from performance_schema.replication_group_members;
注意:由于8.0 中的一些变化和5.X配置有所配置不同,按照以前的配置容易出错,要善于对应分析日志进行排错
推荐参考资料:
https://blog.csdn.net/wzy0623/article/details/100779450
https://www.jianshu.com/p/6e2918845ec8
https://lefred.be/content/mysql-8-0-innodb-cluster-the-quick-hands-on-manual/
https://cloud.tencent.com/developer/article/1445710