この記事では、Mysql の読み取りと書き込みの分離とは何ですか?マスター/スレーブデータベースを設定するにはどうすればよいですか?困っている友人は参考にしていただければ幸いです。
読み取りと書き込みの分離とは何ですか?
Mysql には、追加、削除、変更、読み取りという 4 つの機能しかありません。システムのパフォーマンスの向上に役立ちます。
考えてみてください。入居、返品、交換、商品の販売が正面玄関でのみ商品を販売し、その他は裏口に行くように変更されました。これは非常に明確ではありませんか。
多くの場合、ハイエンドに見えるものは非常に簡単に作成できます。
以下は初心者向けに書かれており、すべて非常に直感的な操作です。
1. mysql5.7
PS: 条件が限定されている場合は、2 つの mysql サービス (3306、3307 などの異なるポート) をインストールするだけで済みますが、これは本来の効率性の意図とは少し異なります。
#1. 通常、コード層では、update、insert、select * from などの mysql 操作クラスの読み取りと書き込みがルーティングされます。
2. ミドルウェア エージェントは、コードを変更せずに、読み取りおよび書き込みリクエストをマスター/スレーブ サーバーに送信します。
次はメイン IP: 192.168.0.1、スレーブ IP: 192.168.0.2、作成です。同期アカウントの指定、パスワード spec_password の例:
メインサーバー (追加、削除、変更):
#1.Mysql配置改以下并重启服务(命令行里直接重启:service mysql restart) [mysqld] server-id=1 log-bin=master-bin log-bin-index=master-bin.index #2.命令行mysql执行或phpmyadmin里执行: GRANT REPLICATION SLAVE ON *.* TO 'spec'@'192.168.0.2' IDENTIFIED BY 'spec_password'; flush privileges;
以上でメインサーバーが完成します。
Configurationサーバーから:
#1.Mysql配置改以下并重启服务(命令行里直接重启:service mysql restart) [mysqld] server-id=2 relay-log-index=slave-bin.index relay-log=slave-bin #2.命令行mysql执行或phpmyadmin里执行: change master to master_host='192.168.0.1',master_port=3306,master_user='spec',master_password='spec_password',master_log_file='master-bin.000001',master_log_pos=0; start slave
一般的に、構成は完了しました。
3. テスト:
サーバーからのクエリ ステートメント:スレーブのステータスを表示
If Slave_IO_State=マスターがイベントを送信するのを待っています。成功します。残りのステータスは通常、次の理由によるものです:
1. マスター/スレーブのセキュリティ グループまたはファイアウォールがポート 3306# を開いていない。 # # 2. マスターとスレーブ間の Ping エラー。
今後、マスター サーバーでの追加、削除、または変更はスレーブ サーバーに同期されます。
2. 同期遅延をできるだけ減らすために、スレーブ サーバーの帯域幅はマスター サーバー以上である必要があります。小規模な水道管の場合は、当然ながら同期はさらに遅くなります。
以上がMySQL の読み取りと書き込みの分離とは何ですか?マスター/スレーブデータベースを設定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。