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の完全コード

推薦する

ReactとAntdのFormコンポーネントを組み合わせてログイン機能を実装する方法を詳しく説明します

目次1. ReactとAntdを組み合わせてログイン機能を実現2. ReactとAntdを組み合わせ...

設定ファイルを書いてMyBatisを簡単に使う方法

設定ファイルを書いてMyBatisを簡単に使う方法マイバティス3.xここでは MyBatis につい...

Mysql論理アーキテクチャの詳細な説明

1. 全体的なアーキテクチャ図他のデータベースと比較すると、MySQL は、そのアーキテクチャがさま...

Vueはログイン認証コードを実装する

この記事では、ログイン認証コードを実装するためのvueの具体的なコードを例として紹介します。具体的な...

Linux jdk のインストールと環境変数の設定チュートリアル (jdk-8u144-linux-x64.tar.gz)

最初にsudo suコマンドを使用して root アカウントに切り替えることをお勧めします。そうしな...

Reactマウスの複数選択機能の設定方法

一般的に、リストには選択機能があり、単一選択、二重選択、複数選択が非常に一般的です。カスタム ループ...

JPG、GIF、PNGなどのさまざまな画像形式の詳細な説明

ウェブページ上の画像が一般的に jpg、gif、png 形式であることは誰もが知っています。それらの...

ネイティブJSを使用した遅延読み込みlazyLoadの3つの方法の概要

目次序文方法1: 高コントラスト方法2: getBoundingClientRect() APIを使...

Vueはダイアログのカプセル化を実装します

目次Vue2 ライティングVue3プラグインのバージョンの記述Vue3 動的コンポーネントの記述書き...

Vue のライフサイクルとフック関数の詳細な説明と典型的な面接の質問

目次1. Vue ライフサイクル2. フック機能2.1 4つの段階と8つの方法に分かれています。 2...

広告を閉じるための JavaScript カウントダウン

広告を閉じるまでのカウントダウンを実装するために JavaScript を使用するまだフロントエンド...

Ubuntuのインストール Matlab2020b の詳細なチュートリアルとリソース

目次1. リソースファイル2. インストール2.1 詳細な手順2.1.1 ディスクイメージのマウント...

JavaScript es6 の新しい配列メソッドの詳細な説明

目次1. 各() 2. arr.filter() 3. arr.every() 4. arr.map...

国内SNSのホームページを比較・分析して得た経験をみんなで共有(写真)

この記事では、ソーシャル ウェブサイトのホームページを比較分析することで洞察を得て、ソーシャル ウェ...

MAC で Mysql5.7.10 のルートパスワードを変更する方法

まず、MySQLをskip-grant-tablesモードで起動します: mysqld --skip...