MySQL マスタースレーブ構成の学習ノート

MySQL マスタースレーブ構成の学習ノート

● 新しいプロジェクトのセキュリティを確保するためにクラウド データを購入する予定でした。 Alibaba Cloud と Tencent Cloud を比較検討した結果、どちらも高すぎるという結論に達しました。データがバックアップされているだけではないでしょうか?それなら自分でバックアップを取ったほうがいいかもしれません。

● 自宅に Raspberry Pi が 2 台あるので、そこに MySQL をバックアップすればいいんです。ネットにチュートリアルがあるので、早速始めます。 segmentfault mysql に関するいくつかの記事を検索し、そこに書かれていることを実行しましたが、もちろん失敗しました。成功していたら、この記事を書いていなかったでしょう。 ps: 彼らのチュートリアルはすべて正しいです。

● ここで、オンライン チュートリアルに従って、マスター サーバーとスレーブ サーバーの構成を開始します。

1. マスター設定(マスター)

mysql設定ファイル(通常は/etc/mysql/my.conf)を変更します。

server-id=1 //mysql の ID 識別子を設定します。log-bin=/var/lib/mysql/mysql-bin //log-bin ログ ファイル。このログ レコードを使用してマスター スレーブ バックアップが実装されます。#binlog-do-db=mysql1 #バックアップするデータベースの名前。複数のデータベースをバックアップする場合は、このオプションを繰り返し設定します。#binlog-ignore-db=mysql2 #バックアップする必要のないデータベースの名前。複数のデータベースをバックアップする場合は、このオプションを繰り返し設定します。#log-slave-updates=1 #スレーブ ライブラリが他のスレーブ ライブラリのマスター ライブラリでもある場合は、このパラメータを追加する必要があります。そうしないと、更新されたレコードが binglog のバイナリ ファイルに書き込まれません。#slave-skip-errors=1 #エラーをスキップしてレプリケーション操作を続行します (オプション)

メインのmysqlに同期用のアカウントを2つ追加する

mysql> '123456' で識別される 'sync-1'@'%' に *.* 上のレプリケーション スレーブを許可します。

mysql> '123456' で識別される 'sync-2'@'%' に *.* 上のレプリケーションスレーブを許可します。

msqlを再起動する

mysql>show master status; //マスターmysqlのステータスを表示できます

2. スレーブ設定

MySQL 構成ファイル my.conf を変更します。2 つのスレーブ ノードの構成方法は同じです。

サーバーID=2
#log-bin=/var/lib/mysql/mysql-bi //mysqlからログファイルを設定する必要はありません

mysql にコマンドパラメータを追加すると、master_log_file と master_log_pos は、show master status を使用してマスター mysql で照会できるようになります。

mysql>マスターをmaster_host='192.168.145.222'、master_user='sync-1'、master_password='123456'、master_log_file='mysql-bin.000001'、master_log_pos=308に変更します。 

mysql>start slave //Startmysql>show slave status\G //クエリステータス。Slave_IO_RunningとSlave_IO_Runningの両方がyesの場合は成功を意味します。

3. セットアップ中に発生した問題

最終エラー番号: 1146

スレーブをセットアップしたとき、マスター MySQL にはすでにテーブルがありました。テーブルが作成されたとき、binlog バイナリ ログに記録がなかったため、スレーブ MySQL はデータを書き込むことができませんでした。このとき、データベース ファイルをスレーブ MySQL に手動でインポートする必要がありました。その理由は、オンライン チュートリアルではすべて新しくインストールされたマスター MySQL とスレーブ MySQL が示されていたため、既存のデータに問題はなかったからです。

最終エラー番号: 1062

クエリでエラー「キー 'PRIMARY' のエントリ 'xxxxx' が重複しています」

主キーの競合。この問題はより複雑です。テーブル設定が間違っている可能性があります。後で、Stack Overflow でこの問題の解決策を見つけました。

# スレーブ上
mysql> スレーブを停止します。
mysql> 権限をフラッシュします。
# マスターレストマスター
mysql> マスターをリセットします。
# スレーブ上;
mysql> スレーブをリセットします。
mysql> スレーブを起動します。

これで、MySQL マスタースレーブ構成の勉強ノートに関する記事は終了です。MySQL マスタースレーブ構成のより詳しい情報については、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き閲覧してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Linux ベースの MySQL マスター スレーブ構成の全プロセスを記録する
  • MySQL5.7 マスタースレーブ構成例の分析
  • Docker mysql マスタースレーブ構成の詳細と例
  • MySQL マスタースレーブ構成ソリューションに関する簡単なメモ
  • MySQLデータベースのマスタースレーブ構成方法の共有
  • Mysqlはマスタースレーブ構成とマルチマスターマルチスレーブ構成を実装します

<<:  Vue の vue.$set() メソッドのソースコード例の詳細な説明

>>:  DockerをインストールしてAlibaba Cloud Image Acceleratorを構成する方法

推薦する

Nginx + consul + upsync を使用して動的負荷分散を実現する方法の詳細な説明

目次前提条件DNSドメイン名解決プロセス外部ネットワークマッピングnginxコア知識nginxとはア...

マインスイーパゲームを実装するための jQuery プラグイン (2)

この記事では、jQueryプラグインを使用してマインスイーパゲームを実装する2番目の記事を参考までに...

Vueはシンプルなショッピングカートの例を実装します

この記事では、参考までに、Vue の具体的なコードを共有して、簡単なショッピングカートを実装します。...

MySQL のスローログ監視の誤報問題の分析と解決

以前は、さまざまな理由により、一部のアラームは真剣に受け止められませんでした。最近、休暇中に、すぐに...

IDEA は MySQL への接続時にエラーを報告します。サーバーが無効なタイムゾーンを返します。タブに移動して serverTimezone プロパティを設定してください。

これからの道は常に困難で、棘だらけです。歯を食いしばって、乗り越えられると信じてください。さあ、さあ...

webkit-box-reflect を巧みに使用してさまざまな動的効果を実現する (要約)

かなり前の記事で、 -webkit-box-reflectプロパティについて説明しました。リフレクシ...

MySQL 学習ノート: データ エンジン

現在のデータベースでサポートされているエンジンを表示します エンジンを表示 +-----------...

MySQL Innodb ストレージ構造と Null 値の保存の詳細な説明

背景:テーブルスペース: すべての INNODB データはテーブルスペース (共有テーブルスペース)...

MySQL 8.0.26 のインストールとアンインストールの完全なステップバイステップの記録

目次序文1. インストール1.公式サイトからダウンロード2. 構成を作成する3. MySQLを初期化...

ウェブページを作成するために最もよく使用されるHTMLタグ

1. よく使われるHTMLタグの最適化HTML は Web 編集者にとって基本的なスキルであるべきで...

JavaScript を使用して QR コードを解析する 3 つの方法

目次1. JavaScriptを使用してQRコードを解析する1. QR コードとは何ですか? 2.q...

Vue シンプル登録ページ + 確認コード送信機能の実装例

目次1. エフェクト表示2. 検証コードとメールプッシュ管理の強化(後述のブログを参照) 3. 一般...

CSS と HTML とフロントエンド テクノロジーのレイヤー図

JavascriptとDOMの関係は非常に曖昧で、CSSやHTMLのフロントエンド技術層も理解してい...

HTML でカスタム画像を使用してチェックボックスを表示する方法

チェックボックスの使用を実装するために画像を使用する必要がある場合は、それを使用して実装できます。実...

JavaScriptはイベントリスナーをイベント委任にバッチで追加します。詳細なプロセス

1. イベント委任とは何ですか?イベント委譲: イベントバブリングの特性を利用して、子要素に登録すべ...