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

推薦する

ノードイベントループにおけるイベント実行の順序

目次イベントループブラウザ環境イベントループノード環境イベントループ6つのステージ(1)setTim...

スキニングを実現するネイティブJavaScript

ネイティブJavaScriptでスキニングを実装するための具体的なコードは参考までに。具体的な内容は...

この記事では、イベント委任を使用してJavaScriptメッセージボード機能を実装する方法について説明します。

イベント委任を使用してメッセージ ボード機能を実装します。 <!DOCTYPE html>...

Linux parted ディスク パーティション実装手順の分析

fdisk と比較すると、parted はあまり使用されず、主に 2T を超えるパーティションに使用...

MySQLデータベースのマスタースレーブレプリケーションと読み取り書き込み分離に関する詳細なチュートリアル

目次序文1. MySQL マスタースレーブレプリケーション1. サポートされているレプリケーションの...

Vue フィルターの使用とタイムスタンプ変換の問題

目次1. 概念をすぐに認識する: 2. ローカルフィルター: 3. グローバルフィルター: 4. 拡...

JSが絵柄デジタル時計を実現

この記事の例では、画像デジタル時計を実現するためのJSの具体的なコードを参考までに共有しています。具...

Dockerコンテナとローカルマシン間でファイルを転送する方法

ホストとコンテナ間でファイルを転送するには、コンテナの完全な ID が必要です。取得方法は以下の通り...

jQueryチェーン呼び出しの詳細な説明

目次チェーン呼び出し小さなケースチェーン呼び出しjQuery オブジェクトが任意のメソッド (ノード...

MySQLのorder byとlimitを混在させる際の落とし穴の詳細な説明

MySQL では、ソートには order by を、ページングには limit をよく使用します。最...

MySQL で乱数を生成し、文字列を連結する方法の例

この記事では、MySQL が乱数を生成し、文字列を連結する方法について例を使用して説明します。ご参考...

Nginx で何ができるかの包括的な分析

序文この記事は、サードパーティのモジュールをロードせずにNginxで処理できることのみに焦点を当てて...

Centos7 MySQL データベースのインストールと設定のチュートリアル

1. システム環境yum updateアップグレード後のシステムバージョンは[root@yl-web...

クラウドデータ移行サービスの観点から見たMySQLの大規模テーブル抽出モードの原理分析

概要: MySQL JDBC 抽出にはどのような方法を使用すればよいでしょうか? その方法を説明しま...

JavaScript でサウンド効果付きの花火効果を実装する

コードを書くのに 30 分かかりましたが、この HTML5 Canvas New Year Fire...