大規模な Web サイトでは、多数の同時アクセスを処理するために、Web サイト上の分散負荷分散以上のものが必要です。データビジネス層とデータアクセス層に関しては、従来のデータ構造がまだ使用されている場合、または 1 つのサーバーのみが使用されている場合、データベース接続操作が多すぎるためにデータベースがクラッシュすることは避けられず、データ損失の結果はさらに悲惨なものになります。このとき、データベース接続を減らす方法を検討します。一方では、優れたコードフレームワークを使用してコードを最適化し、memcached などの優れたデータ キャッシュ テクノロジを採用します。十分な資金があれば、メイン データベースの負荷を分散するためにサーバー クラスターを想定することも間違いなく検討します。さて、今日の記事の主題に入りましょう。MySQL マスター/スレーブ構成を使用して、読み取りと書き込みの分離を実現し、データベースの負荷を軽減します。この方法は最近多くのウェブサイトで使用されており、目新しいものではありません。今日は参考までにまとめておきます。 概要:マスター サーバー (win8.1 システム、IP: 192.168.0.104) と 2 つのスレーブ サーバー (仮想マシン - 1 つは Ubuntu、もう 1 つは Windows Server 2003) をセットアップします。 原則:マスター サーバーは Web サイトの非クエリ操作を担当し、スレーブ サーバーはクエリ操作を担当します。ユーザーは、Web サイトの機能モデルに従って固定された方法でスレーブ サーバーにアクセスするか、プールまたはキューを記述して、リクエストに対してスレーブ サーバーの接続を自由に割り当てることができます。マスター サーバーとスレーブ サーバーは、MySQL バイナリ ログ ファイルを使用してデータの同期を実現します。バイナリ ログはマスター サーバーによって生成され、スレーブ サーバーは応答して同期されたデータベースを取得します。 具体的な実装: 1. マスター サーバーとスレーブ サーバーの両方に MySQL データベースをインストールします。Windows システムには mysql_5.5.25.msi バージョンをインストールし、Ubuntu には mysql-5.6.22-linux-glibc2.5-i686.tar をインストールしました。 Windows への MySQL のインストールについては、地球上のほとんどの人がその方法を知っているはずなので、ここでは説明しません。 Ubuntu への MySQL のインストールについて少しお話しします。オンラインでダウンロードしてインストールするのではなく、オフラインでインストールすることをお勧めします。 https://www.jb51.net/article/157282.htm を参考にしてください。この人が兄弟か姉妹かは分かりませんが、とてもよく書いていて、これに従ってインストールできます。インストール中にいくつかの問題が発生する可能性があります。次の解決策を参照してください。 (1) rootユーザーとしてログインしていない場合は、su - rootを使用してインストール時にrootユーザーに切り替えることをお勧めします。この方法により、常にsudoを使用する必要がなくなります。 (2)解凍したmysqlフォルダを保存します。フォルダ名をmysqlに変更するのが最善です。 (3) ./support-files/mysql.server start で MySQL を起動すると、警告が表示される場合があります。中国語の意味は、読み取りファイルを実行するサービスを起動したときに、my.cnf ファイルが無視されたということです。これは、my.cnf のファイル権限に問題があるためです。MySQL はファイルを危険と見なし、実行しません。ただし、mysql は正常に起動します。ただし、次の構成でサーバー パラメータから my.cnf ファイルを変更すると、ファイルは変更されていることがわかりますが、サービスを再起動すると、変更された構成は実行されず、一覧表示すると、mysql フォルダーに .my.cnf.swp などの中間ファイルが多数見つかります。これは、MySQL が起動時に my.cnf を読み取らないためです。この時点で、my.cnfのファイル権限をmy_new.cnfと同じ権限に変更するだけです。コマンド:chmod 644 my.cnfはOKです。 (4) Ubuntu にはドキュメントの内容を変更するための Vim がありません。Vim をインストールするのが最善です (apt-get install vim)。そうしないと、おそらくおかしくなります。 この時点で、MySQL がインストールされているはずです。 2. マスターサーバーを構成する (1)マスターMySQLサーバー上にユーザー「repl」を作成し、他のスレーブサーバーがマスターサーバーにリモートアクセスし、このユーザーを介してバイナリログを読み取ってデータ同期を実現できるようにします。 (2)MySQLインストールフォルダを見つけて、my.Iniファイルを変更します。 MySQL にはいくつかのログ記録方法がありますが、今日はそれに焦点を当てていません。バイナリ ログ log-bin を開始するだけです。 [mysqld]の下に次のコード行を追加します。 (3)ログを見る mysql> マスターステータスを表示します。 +-------------------+----------+--------------+------------------+ | ファイル | 位置 | Binlog_Do_DB | Binlog_Ignore_DB | +-------------------+----------+--------------+------------------+ | マスターbin.000001 | 1285 | | | +-------------------+----------+--------------+------------------+ セット内の 1 行 (0.00 秒) MySQLサービスを再起動する 3. スレーブサーバーを構成する (Windows) (1)MySQLのインストールフォルダを見つけて、my.iniファイルを変更します。[mysqld]の下に次のコード行を追加します。 MySQLサービスを再起動する (2)マスターへの接続 マスターをmaster_host='192.168.0.104'に変更します。//マスターサーバーIP マスターポート=3306、 マスターユーザー='repl', マスターパスワード = 'mysql'、 master_log_file='master-bin.000001', //マスターサーバーによって生成されたログ master_log_pos=0; (3)スレーブを起動する スレーブを起動します。 4. スレーブサーバー (Ubuntu) (1)MySQLインストールフォルダを見つけてmy.cnfファイルを変更します。vim my.cnf (2)./support-files/myql.server restartでMySQLサービスを再起動し、./bin/mysqlでMySQLコマンドウィンドウに入ります。 (3)マスターへの接続 マスターをmaster_host='192.168.0.104'に変更します。//マスターサーバーIP マスターポート=3306、 マスターユーザー='repl', マスターパスワード = 'mysql'、 master_log_file='master-bin.000001', //マスターサーバーによって生成されたログ master_log_pos=0; (4)スレーブを起動する スレーブを起動します。 これですべての設定が完了しました。これでマスター MySQL でテストできます。マスター MySQL のすべての操作ログを監視しているため、マスター サーバーのデータベースを変更する操作はすべてスレーブ サーバーに同期されます。試すためにデータベースとテーブルを作成します。 。 要約する 以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。これについてもっと知りたい場合は、次のリンクをご覧ください。 以下もご興味があるかもしれません:
|
>>: Linux viコマンドの知識ポイントと使い方のまとめ
目次Vueのレスポンシブシステムの基本原則1. Object.definePropertyの使い方を...
HTTP ステータス コードステータス コードは 3 桁の数字と理由フレーズ (最も一般的なもの: ...
目次1. まずプロジェクトにechartsをインストールします2. echartsに縦棒グラフテンプ...
効果画像: html: <div class='site_bar'>ホー...
目次Node.js の公式紹介Node.jsのコア開発言語ウェブ上の JavaScript と No...
目次再実行ログディスクデータを直接更新するのではなく、最初にメモリデータを更新する必要があるのはなぜ...
目次ハッシュと履歴の違いハッシュ履歴getCurrentLocation の実装setupListe...
1. インストールパッケージをダウンロードする- お使いのコンピュータシステムに応じて適切なバージョ...
Vue親コンポーネントは子コンポーネントの関数を呼び出す親コンポーネントはイベントを通じて子コンポー...
最初のステップは、対応するデータベースモジュール(sql)をプロジェクトファイル( .pro )に追...
処理能力と同時実行性を向上させるために、Web コンテナは通常、リクエストを処理するタスクをスレッド...
目次序文コアコードコードのファイル表示部分序文この記事では主に、Vue プロジェクトでの添付ファイル...
Python 3.4でMySQLデータベースを使用する詳細なプロセスは次のとおりです。 Window...
これは、ネイティブJSを使用してページングクリックコントロールを実装する必要がある面接の質問です。参...
序文パブリック IP を持つ本番 VPS の場合、必要なポートのみが開かれ、IP とポートを制御する...