Mygoalは、ラボ環境で、MySQL InnoDBクラスターをマルチプライマリモードでセットアップすることです
私は多くを読みましたが、この設定を機能させることができません。
Ubuntu 16.04.3サーバーLTS x 3 SQL0-SQL2
Ubuntu 16.04.3サーバーLTS x 2 REP0-REP1
REP0がベアメタル上にあり、REP1がオフラインであることを除いて、すべてのサーバーインスタンスは仮想マシンにあります。
OracleからMySQLサーバー8.0をインストールAPT repo using mysql-apt-config_0.8.10-1_all.deb
。
これらのサーバーは、多くの構成変更が機能しているセットアップを見つけようとして上下し続けています。
すべてのボックスでLegacy Authentication Method
を使用してMySQLサーバー8.0を設定します。
現在の/etc/mysql/my.cnf
は、Justin Ellingwood @ DigitalOcean に基づいています。
これは、 SQL0 の/etc/mysql/my.cnf
です。このマシンは、かつてはシングルプライマリセットアップのプライマリであり、正しく機能しませんでした。
他の/etc/mysql/my.cnf
ファイルは、# Host specific replication configuration
セクションが変更されたこのファイルと非常に似ています。
現在解決しようとしているエラーは/var/log/mysql/error.log
からのものです。
[ERROR] Plugin group_replication reported: 'It is not allowed to run single primary mode with 'enforce_update_everywhere_checks' enabled.'
はい、マルチプライマリモードが必要なため、my.cnfにこれらを設定しています。シングルプライマリモードで実行したくありません。
loose-group_replication_single_primary_mode = OFF
loose-group_replication_enforce_update_everywhere_checks = ON
これらがマルチプライマリモードになり、エラーにならないようにするには、どこで、どのように、他に何を変更する必要がありますか?
InnoDBクラスターのセットアップと管理に MySQL ShellとそのAdminAPI を使用しない理由は何ですか?
AdminAPIを使用すると、マルチプライマリクラスタを非常に簡単に作成できます。例:
var cluster = dba.createCluster("myCluster", {multiPrimary: true})
また、シェルを使用して管理する実行中のグループレプリケーショングループが既にある場合は、単に " adopt "にすることができます。
var cluster = dba.createCluster("myCluster", {adoptFromGR: true})
また、8.0.14以降、実行中のInnoDBクラスターをシングルプライマリモードからマルチプライマリモード「ライブ」に変更できます。 AdminAPIはその操作のための関数を提供します:
<Cluster.>switchToMultiPrimaryMode()>
また、実行中のクラスターをシングルプライマリモードに戻すこともできます。
<Cluster.>switchToSinglePrimaryMode([instance])
また、クラスターのメンバーを新しいプライマリとして選出する場合も同様です。
<Cluster.>setPrimaryInstance(instance)
これらの新機能を発表したブログ投稿をご覧ください。
https://mysqlserverteam.com/mysql-innodb-cluster-changing-cluster-topology-modes-live/
詳細については、公式の serguide を確認してください。
乾杯、
ミゲル
これは[〜#〜] hack [〜#〜]であり、マルチマスタークラスターを機能させます。
これは[〜#〜]ではありません[〜#〜]良い答えですが、私は動作しているクラスターがあります...
最初に3 VM=を削除して再作成しました。JustinEllingwood @ DigitalOceanの指示を使用しました。
...これらはすべてのインスタンスでテストデータベースを読み取り/書き込みで新規インストールしたためです。
REP0では、ベアメタルマシン。
Sudo apt-get --purge remove sql*
はい、テーブルを削除します
Sudo apt-get update
oracleリポジトリが表示されない...
readd repos
Sudo dpkg -i /opt/mysql_InnoDB_cluster/mysql-apt-config_0.8.10-1_all.deb
Sudo apt-get update
リポジトリは現在存在しています。
Sudo apt-get install mysql-server mysql-Shell
SELECT:レガシー認証方法を使用(MySQL 5.x互換性を維持)
この時点で、Justin Ellingwood @ DigitalOceanからの指示を使用しました。
REP0が読み取り/書き込みメンバーになりました。
これは質問に答えます[〜#〜] [〜#〜]しません。
シングルマスターからマルチマスタークラスターに変更するには、どのテーブルを空にする、削除する、または再作成する必要がありますか?