デュアルマスターMySQLレプリケーションを実行していますが、レプリケーションのない単一のデータベースに移動したいと考えています。両方のデータベースでレプリケーションを完全に無効にするにはどうすればよいですか?
マスターマスターセットアップでレプリケーションを完全に無効にするには、各スレーブで次の手順を実行する必要があります。
STOP SLAVE;
RESET SLAVE;
(使用する - RESET SLAVE ALL;
MySQL 5.5.16以降の場合)これは古い質問であることはわかっていますが、スレーブ変数をリセットする必要があることもわかりました。提案されているように "blah"を使用すると、サーバーは起動時にサーバー 'blah'を見つけようとします。
MASTER
をMASTER_Host='',MASTER_USER='',MASTER_PASSWORD='';
に変更します
マシンがスレーブではなくなったことを確認できます
SHOW SLAVE STATUS \G;
スレーブサーバーで:
MySQLをマスターまたはスレーブで再起動する必要はありません。完全なドキュメントは MySQLリファレンスマニュアル のセクション19にあります。
以前の構成に戻すことにした場合に備えて、残りのレプリケーション設定はそのままにしておくことをお勧めします。そうすれば、セットアップ全体のクロスを再作成するのではなく、データをプッシュしてスレーブ位置をリセットするだけです(skip-slave-startを削除することを忘れないでください)。
MySQLのバージョンに関係なく、これを行う最も完全な方法は次のとおりです。
cd /var/lib/mysql
service mysql stop
rm -f master.info relay-*`
service mysql start
MySQL 5.5では、RAM)でレプリケーション設定が残っているため、これは最新バージョンで機能する必要があります。
私はこの問題について同様の質問に答えました: 以前のMySQLスレーブをマスターに変更し、スレーブステータス情報を削除する方法
複製を無効にするには、my.cnfファイルを編集するだけでは不十分です。実際、これを有効にするための推奨される方法ではなくなりました。 my.cnfファイルにエントリを書き込むと、次回の起動時にのみ有効になり、mysqlクライアントにコマンドを入力した場合と同じように動作します。
mysql>マスターをmaster_Host = 'blah'、master_user = 'blah'、master_password = 'blah' ...に変更します。
これらの方法は両方とも、データディレクトリにmaster.infoというファイルを作成します。このファイルが存在する限り、サーバーはそこにある詳細を使用して複製を試みます。 「リセットスレーブ」最初の回答にリストされているコマンドは、master.infoファイル(およびrelay-log.infoファイル)を削除します。最初の回答で述べたように、my.cnfファイルにその構成情報がないことも確認する必要があります。そうしないと、サーバーの次の再起動時にロギングが再び有効になります。
1つの答えはここにあります:
http://www.oops.net.br/~bac/bam/canopy_repl_setup.htm
* MySQL構成ファイル/etc/my.cnfを編集し、[mysqld]というタイトルのセクションにある次の7行を削除します。
port=3306
log-bin
server-id=1
master-Host=10.0.0.2
master-user=server_1_repl
master-password=server_1_passwd
master-port=3306*
MySQLを再起動します。
これをハリソンフィスクの回答に追加します。
RESET SLAVE ALL;
を使用した場合、再起動は必要ありません。
さらに、スレーブで無効にされたイベントを有効にすることができます:
select * from information_schema.events where status = 'SLAVESIDE_DISABLED';
それらのそれぞれについて:
alter event <event_name> enable;