MySQL マスター/スレーブ データベース同期構成と一般的なエラー

MySQL マスター/スレーブ データベース同期構成と一般的なエラー

アクセス回数が増えると、時間のかかるデータベース読み取り操作では、データベースへの負荷を軽減するために、書き込み操作と読み取り操作を分離することが一般的に採用されます。データベース エンジンは、一般的にマスター/スレーブ アーキテクチャを採用します。 MySQL サーバーのマスター/スレーブ構成を実装すると、読み取りと書き込みの分離を実現できます。また、メイン データベースがクラッシュした後でも、スタンバイ データベースからデータを復元できるため、Web サイトへのアクセスが中断されるのを防ぐことができます。以下は、MySQL マスター/スレーブ サーバーの構成プロセスの簡単な説明です。

まず、同じ LAN 内の 2 台のマシンに MySQL サービスをインストールする必要があります (もちろん、1 台のマシンを使用して 2 台のマシンを仮想化することもできます)。

ホストA: 192.168.1.100

スレーブB: 192.168.1.101

スレーブは複数存在できます。

1. まずホスト A にログインし、次のコマンドを実行してスレーブ権限を付与します。クラスター マシンが複数ある場合は、複数回実行します。

mysql> 'backup'@'192.168.1.101' ('123456' によって識別) に *.* のレプリケーション スレーブを許可します。

2. ホスト A の my.cnf を開き、次の構成パラメータを入力します。

server-id = 1 #ホストID、整数 log_bin = /var/log/mysql/mysql-bin.log #このファイルが書き込み可能であることを確認してください read-only = 0 #ホスト、読み取りと書き込みの両方が可能です binlog-do-db = test #データをバックアップする必要があります。複数行書き込みます binlog-ignore-db = mysql #バックアップする必要のないデータベース、複数行書き込みます

3. スレーブ B の my.cnf を開き、次の構成パラメータを入力します。

サーバーID = 2
log_bin = /var/log/mysql/mysql-bin.log
マスターホスト =192.168.1.100
マスターユーザー =バックアップ
マスターパス =123456
マスターポート =3306
master-connect-retry=60 #スレーブサーバーがマスターサーバーが切断されていることを検出した場合、再接続するまでの時間差(秒単位)
replicate-do-db =test #特定のデータベースのみを複製する replicate-ignore-db=mysql #特定のデータベースを複製しない

4. データベースを同期する

上記の設定後、ホスト A とスレーブ B をそれぞれ再起動して自動同期を実現します。

5. 検証

ホスト A で、 mysql>show master status\G;

大まかにこれらの内容を見ることができます

ファイル:mysql-bin.000001
位置: 1374
Binlog_Do_DB: テスト
Binlog_Ignore_DB: mysql

スレーブ B では、 mysql>show slave status\G;

表示される内容は以下のとおりです。

Slave_IO_State 項目が「マスターがイベントを送信するのを待機中」であり、赤い円内の両方の項目が「はい」であることがわかります。したがって、基本的に構成は成功していると判断できます。

さらに、ホスト A でINSERTUPDATE 、およびDELETE操作を実行して、ホスト B でデータが変更されているかどうかを確認することもできます。

よくある間違い

1. マスターに障害が発生し、修復して再起動した後、スレーブはマスターと同期できなくなります。

エラー: Got fatal error 1236 from master when reading data from binary log

理由:マスターが再起動すると、MySQL binlog が再生成され、対応するレコードの位置が変更されます。

解決:

-マスター:

mysql > ログをフラッシュします。
mysql > マスターステータスを表示します。

ファイルと位置の値を記録する

-奴隷:

mysql > スレーブを停止します。
mysql > MASTER を MASTER_LOG_FILE='mysql-bin.000049'、MASTER_LOG_POS=1359 に変更します。
mysql> スレーブを起動します。
mysql > スレーブステータスを表示\G;

2. スレーブが故障し、設定は正しいが初期化できない

エラー: ERROR 1201 (HY000): Could not initialize master

解決:

-マスター:

mysql > ログをフラッシュします。
mysql > マスターステータスを表示します。

ファイルと位置の値を記録する

-奴隷:

mysql > スレーブをリセットします。
mysql > マスターを、master_host='192.168.10.100'、master_user='test'、master_password='123456'、master_log_file='mysql-bin.000004'、master_log_pos=106 に変更します。
mysql> スレーブを起動します。
mysql > スレーブステータスを表示\G;

要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。これについてもっと知りたい場合は、次のリンクをご覧ください。

以下もご興味があるかもしれません:
  • スレーブ遅延が大きい MySQL 同期問題の最適化方法
  • MySQL のスレーブ レイテンシ問題を解決するための基本チュートリアル
  • MySQL のスレーブ監視における遅延の分析
  • MySQL マスター スレーブ データが矛盾しています。プロンプト: Slave_SQL_Running: 解決策はありません
  • MySQLスレーブライブラリの復元の実践記録
  • MySQLのslave_exec_modeパラメータの詳細な説明
  • MySQL5.6 データベースのマスタースレーブ同期のインストールと構成の詳細 (マスター/スレーブ)
  • MySQL スレーブが oom-killer をトリガーする問題の解決方法
  • MySQLスレーブは列の外部キーチェックと自動増分ロックを遅延します

<<:  Windows サーバー管理におけるセキュリティの考慮事項

>>:  Excelアップロード機能を実現するVue + iViewの完全コード

推薦する

JavaScriptで配列を作成する方法の詳細な説明

目次JavaScript で配列を作成する配列の使用配列を分割文字列に変換する配列に要素を追加する配...

Vue がルート変更を監視するときに watch メソッドが複数回実行される理由と解決策

目次要件の説明:要件分析:ニーズの解決問題解決私はフロントエンドの新人ですが、バックエンドのバグの中...

Dreamweaver で Zen コーディングを使用する方法

前回の記事「Zen Coding: HTML/CSS コードを素早く記述する方法」を公開した後、一部...

「fsck」を使用して Linux のファイルシステムエラーを修正する方法

序文ファイル システムは、データの保存方法と復元方法を整理する役割を担います。 いずれにせよ、時間の...

Reactプロジェクトの新規作成からデプロイまでの実装例

新しいプロジェクトを始めるこの記事では主に、新規プロジェクトを0から1まで取り組むプロセスを記録し、...

Docker ベースのよく使われる CentOS7 イメージの概要

目次1 Dockerをインストールする2 国内ミラーソースの設定3 中国語環境基本版Centos7イ...

docker の run/cmd/entrypoint の違いの詳細な説明

Dockerfile では、run、cmd、entrypoint はすべてコマンドを実行するために使...

503 サービス利用不可エラーの解決方法の説明

1. Webページを開くと503サービス利用不可が表示されますが、更新すると正常にアクセスできます。...

JavaScript を使用した数独の完全な実装プロセス

目次序文数独の解き方最初のボックスに記入してください2番目のボックスに記入してください3番目のボック...

MySQLがデータの削除を推奨しない理由

目次序文InnoDB ストレージ アーキテクチャInnodb テーブルスペースインドストレージディス...

MySQL 5.7.18 のインストールと設定方法のグラフィックチュートリアル (CentOS7)

LinuxにMySQL 5.7.18をインストールする方法1. MySQLをダウンロードします。公...

Linux システムによって報告される xfs_vm_releasepage 警告問題に対処する方法

問題の説明最近、いくつかのマシンで、一日のさまざまな時間に次の警告メッセージが表示されました。 3月...

Alibaba Cloud Server の詳細な展開 (グラフィック チュートリアル)

最近、Web 開発のフロントエンドとバックエンドの技術を学んだので、その後の管理を容易にするためにプ...

WeChat アプレット uniapp は左スワイプによる削除効果を実現します (完全なコード)

WeChatアプレットuniappは左スワイプで削除効果を実現成果を達成する1. スワイプしてリス...

Xiaomi公式サイトの登録・ログイン機能を模倣するJavaScript

目次まずページレイアウトを構築する必要がありますJS関数1 JS関数2 JS関数3 JS関数4効果図...