ホームページ  >  記事  >  バックエンド開発  >  mysqlのマスター/スレーブ構成例の詳細説明

mysqlのマスター/スレーブ構成例の詳細説明

小云云
小云云オリジナル
2018-03-21 09:11:551483ブラウズ

なぜ mysql マスター/スレーブ構成を実行する必要があるのですか?その利点は何ですか?この記事では、主に mysql のマスター/スレーブ構成例の詳細な説明を共有し、皆様のお役に立てれば幸いです。

1: サーバーの負荷分散を実現します

メインサーバーにはデータ更新操作のみが実装され、データクエリは関係ありません。クエリリクエストは複数のスレーブサーバーに転送できます。データの更新とクエリを別のサーバーに配置すると、データのセキュリティが向上し、アプリケーションの応答時間が短縮され、システムのパフォーマンスが向上します。

2: レプリケーションを通じてデータのオフサイト バックアップを実現します

どのような場合でも、データのバックアップは非常に重要なリンクであり、mysql マスター/スレーブ構成はオフサイト バックアップを非常に適切に実装し、この問題を完全に解決します。

3:データベースシステムの可用性向上

データベースレプリケーション機能により、マスターサーバーとスレーブサーバー間のデータの同期が実現され、データベースシステムの可用性が向上します。マスター サーバーで問題が発生した場合、データベース管理者はすぐにスレーブ サーバーをデータ更新およびクエリ サービスのマスター サーバーにすることができます。

スレーブはマスター上のデータをどのようにコピーするのでしょうか?

1: マスター内のデータが変更されると、その変更がバイナリ ログに記録されます。

2: スレーブはマスターのログを自身のリレー ログにコピーします。

3: スレーブはログ記録に基づいてデータを更新します。

マスター/スレーブmysqlを構成する

1: マスターサーバーを構成する

(1): マスターMySQL上にユーザー「リンク」を作成し、他のスレーブサーバーがリンクユーザーを介してマスターにリモートアクセスし、バイナリログを読み取ることを許可します。 , データの同期を実現します。

  1. mysql> ユーザーリンクを作成します;

  2. mysql> GRANT REPLICATION SLAVE ON *.* TO 'link'@'%' IDENTIFIED BY

;

(2) : mysql 設定ファイル my.ini (windows) / my.cnf (linux) を変更します

Linux 環境の場合は、/etc/my.cnf ファイルを変更します。Windows 環境の場合は、my.ini を見つけます。 mysqlのインストールディレクトリにあるファイル。次のステートメント行を [mysqld] の下に追加します:

    server-id=1   //给数据库服务的唯一标识,必须唯一  
    log-bin=master-bin //开启二进制日志  
    log-bin-index=master-bin.index
(3) mysql を再起動し、ステータスを確認し、次の内容を出力します

mysql> SHOW MASTER STATUS;  
+-------------------+----------+--------------+------------------+-------------------+  
| File              | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |  
+-------------------+----------+--------------+------------------+-------------------+  
| master-bin.000001 |      350 |              |                  |                   |  
+-------------------+----------+--------------+------------------+-------------------+  
1 row in set (0.00 sec)

2: スレーブ サーバーを設定します

(1) mysql を変更します設定ファイルに次のステートメント行を追加します:

    server-id=2
    relay-log-index=slave-relay-bin.index   
    relay-log=slave-relay-bin //配置中继日志  
    log_slave_updates = 1 //表示slave将复制事件写进自己的二进制日志  
    #replicate-do-table=bison.user //库名.表名  用来指定只对数据库中的某张表做同步
(2) mysql を再起動し、マスターに接続します

mysql の再起動が完了したら、mysql にログインし、CHANGE MASTER TO ステートメントを使用してマスターに接続します

mysql> CHANGE MASTER TO MASTER_HOST='192.168.1.123',//主服务器ip  
    -> MASTER_USER='link',  
    -> MASTER_PASSWORD='mysql',  
    -> MASTER_LOG_FILE='mysql-bin.000001',//master服务器日志文件,主服务器mysql使用SHOW MASTER STATUS语句  
    -> MASTER_LOG_POS=0;//日志的开始位置

(3) 設定が正しいか確認します

    mysql> SHOW SLAVE STATUS\G

  1. 部分显示如下:  
    *************************** 1. row ***************************  
                 Slave_IO_State:  
                    Master_Host: server1  
                    Master_User: repl  
                    Master_Port: 3306
                  Connect_Retry: 60
                Master_Log_File: mysql-bin.000001
            Read_Master_Log_Pos: 4
                 Relay_Log_File: mysql-relay-bin.000001
                  Relay_Log_Pos: 4
          Relay_Master_Log_File: mysql-bin.000001
              <span style="color:#ff0000;"><strong> Slave_IO_Running: No  
              Slave_SQL_Running: No</strong></span>
  1. (4) スレーブを開始します

  2. mysql

    > スレーブを開始します。

  3. 構成を表示:
mysql> SHOW SLAVE STATUS\G  
部分显示如下:主要看Slave_IO_Running和Slave_SQL_Running  
*************************** 1. row ***************************  
               Slave_IO_State: Waiting for master to send event  
                  Master_Host: 192.168.1.234
                  Master_User: link  
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: master-bin.000001
          Read_Master_Log_Pos: 350
               Relay_Log_File: slave-relay-bin.000002
                Relay_Log_Pos: 548
        Relay_Master_Log_File: master-bin.000001
             Slave_IO_Running: Yes  
            Slave_SQL_Running: Yes

それでは、メインサーバー上にデータベースを作成してみてください。試してみてください。

関連する推奨事項:

mysqlサーバーのマスター/スレーブ構成の概要

Mysqlシリーズ(15) mysqlのマスター/スレーブ構成

mysqlデータベースのマスター/スレーブ構成の詳細な説明

以上がmysqlのマスター/スレーブ構成例の詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。