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 エラーの解決方法の詳細な説明
目次例方法1: 削除方法2: 分解補充する要約するThinking シリーズは、10 分で実用的なプ...
Seurat は、単一細胞解析用の重量級の R パッケージです。使用したことがある人なら誰でも、その...
目次挿入バッファとは何ですか?挿入バッファのトリガー条件は何ですか?なぜ一意のインデックスにできない...
フロントエンド開発者の必須科目であるCSS3は、多くの基本的なアニメーション効果を実現するのに役立ち...
目次モードパラメータハッシュ履歴ハッシュ履歴.push()ハッシュ履歴.replace()アドレスバ...
まず、公式ウェブサイト http://dev.mysql.com/downloads/mysql/ ...
一般的に、データ テーブル内の列を ID 列として設定すると、ID 列の表示値を手動で ID 列に挿...
1. Dockerコンテナを起動する以下のコマンドを使用して新しい Docker コンテナを起動しま...
Tomcat8 イメージをダウンロード [root@localhost ~]# docker sea...
1. 圧縮と包装の概要一般的な圧縮ファイルウィンドウズ .rar .zip .7z Linux .z...
1. mysqldump の紹介mysqldump は、MySQL に付属する論理バックアップ ツー...
による写真に示されている効果を例に挙げてみましょう。明らかに、「次へ」というテキストを水平方向だけで...
XML/HTML コードコンテンツをクリップボードにコピー<ボタンスタイル= "カ...
HTML メールはこのサイト上の独立したホスト ページではないため、他の誰かによってホストされていま...
awk を学ぶ前に、sed、grep、tr、cut などのコマンドを学んでおく必要があります。これら...