大規模な 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コマンドの知識ポイントと使い方のまとめ
目次デザインコンポーネント通信ライフサイクルイベント処理品格とスタイルクラススタイル条件付きレンダリ...
目次序文1. 取引の基本原則の簡単な分析原子性:持続性分離:一貫性: 2. 分離レベルの基本原理の分...
目次序文以前のバージョンイテレータパターンイテレータファクトリ関数イテレータプロトコル最後に序文多く...
この記事では、参考までに、jsで書かれたシンプルなスネークゲームの具体的なコードを紹介します。具体的...
成熟したデータベース アーキテクチャは、最初から高可用性、高スケーラビリティなどの機能を備えて設計さ...
目次1. プロセスとスレッドの概念2. ブラウザの原則3. 同期と非同期4. 実行スタックとタスクキ...
div を使用してマスクを作成したり、ポップアップ ウィンドウをシミュレートしたりします。ただし、I...
実験環境最小限にインストールされた CentOS 7.3 仮想マシン基本環境を構成する1. ngin...
1. まずデータベースサーバーを停止しますサービスmysqld停止2.vim /etc/my.cnf...
目次親コンポーネントと子コンポーネント間でパラメータを渡すルーティングパラメータステータスの改善コン...
1. Javaプロジェクトをjarパッケージにパッケージ化するここではMavenツールを使用します...
目次問題の原因:解決:解決:私は Centos7 を使用しています (理論的にはこの方法は Cent...
序文みなさんこんにちは。私は梁旭です。職場では、システムの起動後にスクリプトやサービスを自動的に開始...
余計なことは言わないで、コードだけ見てみましょう〜 # docker-compose をダウン # ...
幅と高さを直接使用することはできません。 display:block; または display:in...