ホームページ > データベース > mysql チュートリアル > mysqlログベースのマスター/スレーブレプリケーションの詳細な説明

mysqlログベースのマスター/スレーブレプリケーションの詳細な説明

coldplay.xixi
リリース: 2020-08-17 16:55:33
転載
2249 人が閲覧しました

mysqlログベースのマスター/スレーブレプリケーションの詳細な説明

人々はいつも私に、読み書きを分離できるかどうか尋ねます。時々、どう答えていいか本当にわかりません。このように言いましょう。テクノロジー自体は難しくありません。難しいのは、これほど大きなプロジェクトに出会うことはできないということです。このような大きなプロジェクトであれば、読み書きの分離は決して一人や二人ではなく、多くの人の協力が必要です。

関連する学習に関する推奨事項: mysql ビデオ チュートリアル

それでは!やったことがないんです。

でも...

実験環境としては使えないのでしょうか? (気まずい笑顔)

資料探しから実験実施まで、合計3日かかりました(一日中集中して取り組んでいたわけではないので)。基本的には完了しています。つまり、誰かがそれを行う方法を知っているかと尋ねたら、私はすでにそれを行っており、それは難しい作業ではないと答えます。

具体的な注意点:


  1. マスターとスレーブ間のファイアウォールは、
  2. Mysql-id の通過を許可する必要があります。 my.cnf
  3. uuid は auto.cnf
  4. に対して一意である必要があります。マスター サーバーは承認される必要があります。通常、スレーブ アカウントはスレーブ サーバーの使用を承認されます。

一般的に使用されるいくつかのコマンド (ログ メソッド用)


  1. #メイン ライブラリで動作するコマンドは次のとおりです。

    ##mysql > show master status; #View master status ライブラリのステータス

    mysql >

    .

    のレプリケーション スレーブを 'slave'@'%ip%' に許可します。 'password'; # 背後の説明: 'slave' はどのアカウントを表します、@ はスレーブ サーバーの IP、by はパスワードです; systemctl status firewalld

    # ファイアウォールのステータスを確認しますfirewall-cmd – list-all # ファイアウォールのポートリストを表示します

    firewall-cmd –permanent –zone=public –add-port=3306/tcp

    # ポート 3306 を解放します。firewall- cmd –reload

    # ファイアウォールを再起動します。

    さらに、iptable がある場合は、それを確認できます。自分自身

  2. スレーブ ライブラリの主な操作は次のとおりです
  3. mysql> stop smile; // Stop replication
    1. mysql> set slide; // レプリケーションをリセット
    2. mysql> start smile; // レプリケーションを開始
    3. mysql> show slide status\G;
    4. # View status
具体的な構成


環境の紹介
  1. マスターサーバー 192.168.5.238 centos 7.4
      スレーブ サーバー 192.168.5.239 centos 7.4
    1. マスター/スレーブ構成にログを使用する
    マスターサーバーでの設定
  2. 防止のためのファイアウォール操作後で奇妙な問題が発生した場合は、よく使用されるいくつかのコマンドのファイアウォール操作を参照してください
    1. mysql ログ関連の設定。今は他のことには触れず、主にこの段落を読んでください。
    2. # aster live copy configure

      log-bin=mysql-bin / /ログ ファイル名 binlog_format=mixed //このログ形式にはいくつかのオプションがあります。誰もが混合オプションを選択します。statement/row/mixed、詳細については、公式ドキュメント server を参照してください。 -id = 238 //繰り返し使用を避けるため、サーバー IP の最後の 1 桁を使用して名前を付けるようにしてください
      skip_name_resolve=ON //これを直接書きます。以上です。他の人のドキュメントを参照してください。
      expire_logs_days = 10 //ログの保存日数を設定します。これは追加する必要はないと思います。テスト環境では正式に起動して実行する場合は追加する必要があるため、追加しても問題ありません。


      # /etc/init.d/mysql restart // これは必ずしもこのコマンドである必要はありません。centos のインストール方法によって異なります。systemctl restart mysql もあります。 Linux の操作
      ##2 つのサーバーがコピーされていない場合、auto.cnf の uuid は異なるはずです。コピーされている場合は、確認してください。これは mysql インストール ディレクトリの /var およびディレクトリにありますか。このファイルを削除するか、mv でバックアップしてください。

    mysql のコピー権限を設定してください
  3. # mysql -uroot -p "password" //mysql サーバーにログインすると、パスワードの入力を求められます
    mysql>GRANT レプリケーション スレーブ ON . TO 'スレーブ'@'%' IDENTIFIED BY '111111'; // レプリケーションがレプリケーション権限を割り当てることを説明します。この . はどのライブラリを操作できますか。最後の 'slave'@'%' は、どのホストでも操作できることを意味しますスレーブを使用してライブラリからコピーするか、IP の後にパスワードを指定することもできます ha
    mysql> show master status;
    —————— ————- ————– ——— ——— ——————-
    | ファイル | 位置 | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
    —————— ————- ————– —————— — ————-
    | mysql-bin.000010 | 2812 | # 上記の表が表示されている場合は成功を示しています


    ライブラリからの設定
  4. my.cnf を変更します
    1. log-bin=mysql-bin //ログ ファイル名

      binlog_format=mixed //ログ形式
      server-id =239 / /サーバー ID これは、IP の末尾を使用して、メイン サーバーと同じように説明されます



      #expired_logs_days = 10 //これを
      # 初期にコメントアウトしました-plugin-load = "" //当面は使用しません。有効であれば設定可能です。この項目、マスター/スレーブレプリケーションは重要な項目ではありません
      relay_log = mysql-relay-bin / /これはスレーブ ライブラリからのレプリケーション ログです relay_log_index=relay_log.index //ロ​​グ インデックス

      # /etc/init.d/mysql restart // これは必ずしもこのコマンドであるとは限りません。これは、centos のインストール方法によって異なります。systemctl restart mysql もあります。これが理解できない場合は、Linux の操作についてさらに調査してください。スレーブ ライブラリ
      ##スレーブ ライブラリの mysql ターミナルを入力します #mysql -uroot -p //ターミナルを入力します

    2. ## mysql -uroot -p //ターミナルに入ります(詳しく書いているのは、この記事を読んだ人が操作が不完全であると誤解するのが怖いからです)

      1. スレーブを閉じる

        # スレーブ ライブラリを設定する前にスレーブを閉じるように注意してください;

        ##mysql>stop smile; //これはスレーブ ライブラリを閉じるためです。

      2. マスター パラメーターを変更します

        mysql>マスターを

        master_host='192.168.5.238',
        master_user=に変更します'slave',

        master_password='上記のマスターライブラリのコピー権限を設定する際のパスワードを記入してください',

        master_log_file='mysql-bin.000010', //マスターライブラリのファイル名を記入してください show masterここにステータスがあるので、場所をコピーするだけです。
        master_log_pos=2812; //メイン ライブラリの show master ステータスを確認します。
      3. ##スレーブ ライブラリを開始します


        mysql>start smile; //スレーブ ライブラリを開始します



        マスター/スレーブ レプリケーションが成功したかどうかを確認します
      4. mysql> show smile status \G;

                 Slave_IO_State: Waiting for master to send event
                      Master_Host: 192.168.5.238
                      Master_User: slave
                      Master_Port: 3306
                    Connect_Retry: 60
                  Master_Log_File: mysql-bin.000010
              Read_Master_Log_Pos: 2812
                   Relay_Log_File: mysql-relay-bin.000013
                    Relay_Log_Pos: 3025
            Relay_Master_Log_File: mysql-bin.000010
                 Slave_IO_Running: Yes
                Slave_SQL_Running: Yes
        ログイン後にコピー
        Slave_IO_Running と Slave_SQL_Running の値が両方とも Yes であることを確認すると、成功したことになります。失敗した場合は、以下のプロンプト メッセージを参照してください。 Google Baidu を検索して見つけてください。

      5. 私はここにいます。設定中に問題が発生しました。つまり、uuid エラーが報告されました。その理由は、私の実験環境が次のとおりでした。 mysql のインストール後に仮想マシンからコピーされたため、mysql の uuid は同じでした
      6. cd /usr/local/mysql/var

        ## mv auto.cnf auto.cnf.back //これが存在するかどうかを確認し、存在しない場合は操作しないでください。存在する場合はそれで終わりです

        # /etc/init.d/ mysql restart //データベースを再起動します
          その後、show smile status\G を実行します。2 つの Yes
        1. これまでのところ、ログベースのマスター/スレーブ レプリケーションが完了しています


          ##概要:
        2. ファイアウォール最初にお読みください。
        問題はありません。成功するまで従ってください。
      パニックにならないように注意してください。
関連するグラフィック チュートリアル:

mysql データベース グラフィック チュートリアル

以上がmysqlログベースのマスター/スレーブレプリケーションの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:learnku.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート