Linux での MySQL データベースのマスター/スレーブ同期構成の利点は、この方法をバックアップ方法として使用して、読み取りと書き込みの分離を実現し、データベースへの負荷を軽減できることです。大量のデータを実行する際の速度と効率を大幅に向上させるには、MySQL のマスター スレーブ レプリケーションに少なくとも 2 つの MySQL サービスが必要です。もちろん、MySQL サービスを異なるサーバーに分散することも、1 つのサーバーで複数のサービスを開始することもできます。これが MySQL マスタースレーブバックアップの原理です。具体的な同期構成プロセスを見てみましょう。 まず、私がテストした環境を見てみましょう。 CentOS 6.5 MySQL マスタースレーブ同期、MySQL バージョン 5.6.25 メインサーバー: centos6.5 IP:192.168.1.101 サーバーから: centos6.5 IP:192.168.1.102 1. メインサーバー関連の設定 1. 同期アカウントを作成し、サーバーアドレスを指定します [root@localhost ~]mysql -uroot -p mysql>mysqlを使用する mysql> '12345678' で識別される 'testuser'@'192.168.1.102' に *.* 上のレプリケーション スレーブを許可します。 mysql>権限をフラッシュする #権限を更新する 承認されたユーザー testuser は、アドレス 192.168.1.102 からプライマリ サーバー 192.168.1.101 のデータベースにのみアクセスでき、データベースをバックアップする権限のみを持ちます。 2. /etc/my.cnf設定ファイルを変更する vi /etc/my.cnf [mysqld] の下に次のパラメータを追加します。ファイルがすでに存在する場合は、追加する必要はありません。 サーバーID=1 log-bin=mysql-bin #MySQLバイナリログシステムを起動します。 binlog-do-db=ourneeddb #同期するデータベース binlog-ignore-db=mysql #mysqlシステムデータベースを同期しません。同期したくない他のデータベースがある場合は、続けて追加します [root@localhost ~]/etc/init.d/mysqld restart #サービスを再起動します 3. マスター サーバーのマスター ステータスを確認します (ファイルと位置の項目に注意してください。スレーブ サーバーにはこれらの 2 つのパラメータが必要です) mysql> マスターステータスを表示します。 +------------------+----------+--------------+------------------+ | ファイル | 位置 | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000012 | 120 | ourneeddb| mysql | +------------------+----------+--------------+------------------+ 4. データベースをエクスポートする エクスポートする前にデータベースをロックする 読み取りロックでテーブルをフラッシュします。#データベースのエクスポート時にデータが書き込まれないようにするためのデータベース読み取り専用ロックコマンド テーブルのロックを解除する; #Unlock データベース構造とデータをエクスポートします: mysqldump -uroot -p ourneeddb > /home/ourneeddb.sql ストアド プロシージャと関数をエクスポートします: mysqldump -uroot -p -ntd -R ourneeddb > ourneeddb_func.sql ヒント: -ntd はストアド プロシージャをエクスポートし、-R は関数をエクスポートします 2. スレーブサーバー関連の設定 1. /etc/my.cnf設定ファイルを変更する vi /etc/my.cnf [mysqld] の下に次のパラメータを追加します。ファイルがすでに存在する場合は、追加する必要はありません。 server-id=2 #スレーブサーバIDを設定します。これはマスターサーバとは異なる必要があります log-bin=mysql-bin #MySQLバイナリログシステムを起動します replicate-do-db=ourneeddb #同期する必要があるデータベースの名前 replicate-ignore-db=mysql #mysqlシステムデータベースを同期しない [root@localhost~ ]/etc/init.d/mysqld restart #サービスを再起動します 2. データベースをインポートする インポートプロセスについてはここでは説明しません。 3. マスタースレーブ同期を構成する [root@localhost~]mysql -uroot -p mysql>mysqlを使用する mysql>スレーブを停止します。 mysql>マスターを マスターホスト='192.168.1.101', マスターユーザー='テストユーザー'、 マスターパスワード='12345678', マスターログファイル='mysql-bin.000012', master_log_pos=120; #log_file と log_pos は、マスター状態におけるマスターサーバーのファイルと位置です。 mysql>スレーブを起動します。 mysql>スレーブステータスを表示\G; ************************** 1. 行 **************************** Slave_IO_State: マスターがイベントを送信するのを待機中 マスターホスト: 192.168.1.101 マスターユーザー: testuser マスターポート: 3306 接続再試行: 60 マスターログファイル:mysql-bin.000012 読み取りマスターログ位置: 120 リレーログファイル: orange-2-relay-bin.000003 リレーログ位置: 283 リレーマスターログファイル: mysql-bin.000012 スレーブIO実行中: はい スレーブSQL実行中: はい Replicate_Do_DB: オレンジ レプリケート_無視_DB: mysql、テスト、情報スキーマ、パフォーマンススキーマ テーブルの複製: 無視テーブルを複製: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: 最終エラー番号: 0 最終エラー: スキップカウンタ: 0 実行マスターログ位置: 120 リレーログスペース: 1320 Until_Condition: なし ログファイルまで: ログ位置まで: 0 マスターSSL許可: いいえ マスターSSLCAファイル: マスターSSLCAパス: マスターSSL証明書: マスターSSL暗号: マスターSSLキー: マスターより遅れている秒数: 0 Master_SSL_Verify_Server_Cert: いいえ 最終IOエラー番号: 0 最後のIOエラー: 最終SQLエラー番号: 0 最後のSQLエラー: Replicate_Ignore_Server_Ids: マスターサーバーID: 1 マスター_UUID: 773d2987-6821-11e6-b9e0-00163f0004f9 マスター情報ファイル: /home/mysql/master.info SQL_遅延: 0 SQL_残り遅延: NULL Slave_SQL_Running_State: スレーブはすべてのリレー ログを読み取りました。スレーブ I/O スレッドがそれを更新するのを待機しています。 マスター再試行回数: 86400 マスターバインド: 最終IOエラータイムスタンプ: 最終SQLエラータイムスタンプ: マスターSSL証明書: マスターSSLCrlパス: 取得済み_Gtid_Set: 実行されたGtidセット: 自動位置: 0 Slave_IO_Running: Yes、Slave_SQL_Running: Yes は Yes である必要があり、Log_File と Log_Pos はマスター状態の File と Position と同じである必要があることに注意してください。 すべて正しければ、設定は成功です。 上記は、Linux での MySQL データベースのマスター スレーブ同期レプリケーション構成についてまとめた内容のすべてです。お役に立てれば幸いです。 以下もご興味があるかもしれません:
|
<<: vue.config.js からプロジェクト最適化までの vue2.x 構成
>>: Linux の fsevents モジュールによって発生する npm ls エラーの解決方法の詳細な説明
フロントエンドで画像をアップロードする原理は、入力 type="file" タグ...
目次序文:特定の操作ステップ1: プレハブを準備するステップ2: オブジェクトプールを初期化するステ...
目次1. MySQL 結合バッファ2. JoinBufferCacheストレージスペースの割り当て3...
URL: http://hostname.com/contextPath/servletPath/p...
解決すべき問題主にコンポーネント間のクロスレベル通信用なぜディスパッチとブロードキャストを自分で実装...
MySQL データベースでは、テーブルが互いに関連付けられた後は、それらを任意に削除することはできま...
Unix/Linux システムの nobody ユーザーとは何ですか? 1. Windows システ...
目次ブール型数値型文字列型文字列と数値を連結する未定義およびnull配列型タプル型列挙型あらゆるタイ...
1. dockerでtomcat8をインストールする1. Docker HubでTomcatイメージ...
Springboot プロジェクトをサーバーにデプロイする方法としては、war パッケージにパッケー...
この記事では、MySQL データベースの基礎を学ぶためによく使用されるコマンドを例を使って説明します...
タイトルの通り、ページを修正すると以下のような状況が発生する可能性があります。現在、古いページを改修...
Linux インストール JDK1.8 手順1. CentOS に独自の openJDK があるかど...
目次1. 実行コンテキストとは何か2. 実行コンテキスト スタックとは何ですか? 3. 実行コンテキ...
この記事では、例を使用して、MySQL ストアド プロシージャにおけるカーソル (DECLARE) ...