別々の読み取りと書き込みを達成するためにThinkphp + MySQLのマスター・スレーブ同期

別々の読み取りと書き込みを達成するためにThinkphp + MySQLのマスター・スレーブ同期

、thinkphp環境をリスト2のMySQL +

別々の読み取りと書き込み、マスター・スレーブ同期メリット

  • フェイルオーバーのためのリアルタイム災害復旧、;
  • 追跡、ロード・バランシングを提供するために、読み取りと書き込みのセパレート。
  • トラフィックへの影響を避けるために、データを追跡。

別々の読み取りと書き込み、からプライマリ同期原則

  • MySQLのマスターサーバーサービスは、すべての書き込み操作は、バイナリログログに記録され、生成されたログ・ダンプ・スレッドは、I / OスレッドサーバのMySQLサービスからログインBINLOG渡します。
  • 他のSQLスレッドで、サーバーのMySQLのサービス、1つのI / Oスレッドの二つのスレッドを生成します。
  • ライブラリプライマリ・データベースのログへのI / O要求のbinlogスレッド、ログファイルからのbinlog relaylog(リレーログを)書かれています。
  • SQLスレッドは、コンテンツデータベースrelaylogから読み出し、一貫したマスタ・スレーブ動作、二つのデータベースに応じて、最終的なデータの目的を達成するために、特定の操作に解析します。

Thinkphp設定

  • 変更のconfig / database.phpで
    // 启用分布式数据库
    'deploy'    =>  1,
    // 数据库类型
    'type'        => 'mysql',
    // 服务器地址
    'hostname'    => '192.168.1.1,192.168.1.2',
    // 数据库名
    'database'    => 'demo1,demo2',
    // 数据库用户名
    'username'    => 'root1,root2',
    // 数据库密码
    'password'    => 'pass1,pass2',
    // 数据库连接端口
    'hostport'    => '3306',
    //开启读写分离
    'rw_separate'     => true,
    

MySQL設定

这里 'deploy'    =>  1,表示启用分布式数据库 'rw_separate'     => true,开启读写分离
demo1,demo2代表你两个数据库名,其他类似。
  • MySQL設定マスタ - スレーブ同期

    • 設定ファイルを変更MYSQL、私がインストールさパゴダ(ETC / my.cnfの)下を使用します
    • log-bin=mysql-binオープン
    • server-id = 1これは、メインのライブラリと同じか、どのような値からライブラリを表します。
    • 上記の操作は、ライブラリのメインライブラリから構成されている必要があり
  • メインライブラリ構成

    • ユーザーを作成し、各サーバからマスタに接続するためにアカウント名とパスワードを使用する必要があります、各サーバーからアカウントを作成することができ、あなたはすべてのサーバーが同じアカウントを使用することができます。ここでは、すべて同一のIPセグメントは、マスタ・スレーブ同期アカウントを作成するだけで、サーバーからです。マスターという名前のユーザーを作成し、パスワードを使用することができ192.168.1.1 123456アカウント、で、アカウントが唯一のマスタ・スレーブ同期することができ、最初の着陸のmysql、および
    • CREATE USER 'master'@'192.168.1.1' IDENTIFIED BY '123456';

GRANT REPLICATION SLAVE ON *.* TO 'master'@'1192.168.1.1' IDENTIFIED BY '123456' WITH GRANT OPTION;

  • ライブラリの設定から

    • サーバー上のライブラリーからのMysql
      CHANGE MASTER TO
      MASTER_HOST='192.168.1.1',
      MASTER_USER='master',
      MASTER_PASSWORD='123456',
      MASTER_LOG_FILE='mysql-bin.000097',
      MASTER_LOG_POS=1507;

    • マスターサーバー上で入力されたビューLOG_FILEやPOS mysqlのは、show master status\G私はあなたがコピーして実装している場合、直接、あなたがすることができ、上記の設定をコピーしていない、見ることができるstop slaveサービスを閉じ、新しいコンフィギュレーション、すなわち再起動MySQLを再実行しますことができます。

リリース元の4件の記事 ウォンの賞賛0 ビュー68

おすすめ

転載: blog.csdn.net/qq_32450143/article/details/105047869
おすすめ