大規模な 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コマンドの知識ポイントと使い方のまとめ
序文低速システム コールとは、決して戻らない可能性があり、プロセスを永久にブロックするシステム コー...
データベースをインストールした後、誤ってインストール ウィンドウを閉じたり、長期間 root ユーザ...
目次1. シナリオ例1.1. 抽選の賞品名を設定する1.2. 各賞の重みを設定する1.3. ラッキー...
1. mysql をインストールします。次のコマンドを実行して、YUM ソースを更新します。 rpm...
複数のTomcatをインストールする場合は、システムにJDKがインストールされている必要があり、 T...
目次メイクファイルMakefile の命名とルールMakefile の仕組みMakefile変数Ma...
質問アップロードするファイルのタイプを accept に追加することは、「表面的な」役割しか果たしま...
1. 公式ウェブサイトから 64 ビットの zip ファイルをダウンロードします。 2. インスト...
Docker に TensorFlow 環境をすばやくインストールし、TensorFlow を使用し...
以下に示すように、あなたならどのようにそれを達成しますか: 通常、フォントアイコンを使用して中央にプ...
序文MySQL では、Innodb と MyIsam の両方がインデックス構造として B+ ツリーを...
この記事では、主に 2 種類の下線の動的効果について説明します。1 つ目は、ホバーすると X 軸が内...
同時アクセスの場合、非反復読み取りやその他の読み取り現象が発生する可能性があります。高い同時実行性に...
目次1. Promiseとは何か2. 基本的な使い方3. Promiseメソッド3.1 Promis...
以下のコードはすべて <head>...</head> の間にあり、具体的な...