MySQL マスタースレーブレプリケーションの読み書き分離構造の詳細な説明

MySQL マスタースレーブレプリケーションの読み書き分離構造の詳細な説明

MySQL マスタースレーブ設定

MySQL のマスター/スレーブ レプリケーションと読み取り/書き込み分離設定は非常にシンプルです。

設定my.cnfファイルを変更する

マスターとスレーブの設定は似ています。

[mysqld]
ログ bin = mysql bin 
サーバーID=222

log-bin=mysql-binはバイナリログを有効にすることを意味します。

server-id=222サーバーの一意の ID を設定することを意味します。デフォルト値は 1 で、通常は IP アドレスの最後のセグメントです。他の MySQL サーバーと重複しない限り、別の値に書き込むことができます。

ここで、MySQLのデフォルトのmy.cnfファイルは、 /etc/mysql/conf.d conf.dパス内のすべてのcnfファイルを参照します。したがって、 /etc/mysql/conf.d conf.dディレクトリにcnfファイルを追加し、上記の内容を追加することもできます。

マスターマシンとスレーブマシンでそれぞれmysqlを再起動します。

/etc/init.d/mysql を再起動

マスターにアカウントを作成し、スレーブを承認し、スレーブで関連する設定を行う

マスターマシンとスレーブマシンにそれぞれ root ユーザーとしてログインします。

mysql -uroot -p // 入力後、root パスワードの入力を求められます。root パスワードを入力するとログインできます。

マスターマシン上

アカウントを作成し、スレーブ マシンを認証します。ユーザー名とパスワードに注意してください。これらは任意に設定できますが、スレーブが後で必要になるため、必ず書き留めておいてください。

'ryugou' によって識別される 'ryugou'@'%' に *.* のレプリケーション スレーブ権限を付与します。

通常、ルート アカウントは使用されません。@'%' は、アカウントとパスワードが正しい限り、すべてのクライアントが接続できることを意味します。ここでは、セキュリティを強化するために、192.168.145.226 などの特定のクライアント IP アドレスを使用できます。

スレーブマシン上

マスターステータスを確認する

マスターステータスを表示します。

MySQLターミナルに入力

次のようにコードをコピーします

マスターをmaster_host='xxx.xxx.xxx.xxx'、master_user='ryugou'、master_password='ryugou'、master_log_file='mysql-bin.000004'、master_log_pos=120に変更します。

master_log_file はマスター マシン上の対応するコンテンツであり、master_log_pos も同様です。マスター ステータスのコンテンツに注意してください。

master_user と master_password は、マスター マシンでの認証時に設定されたユーザー名とパスワードです。

スレーブサーバーを起動する

スレーブを起動します。

スレーブレプリケーション機能のステータスを確認する

スレーブステータスを表示\G;

リストが表示されます

主に、Slave_IO_Running と Slave_SQL_Running のステータスが両方とも Yes であることを確認します。

マスターはデータベースを作成し、サーバーからユーザーのアクセス権を設定します。

マスターにデータベース テストを作成すると、スレーブにもテストが作成されます。ここで、読み取りと書き込みを分離します。スレーブ マシン上の gou というユーザーはアクセスできますが、読み取りのみ可能です。

test.* の select 権限を gou に付与します。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • MySQL データベースのマスター スレーブ分離のサンプル コード
  • MySQL マスタースレーブ同期、読み取り書き込み分離構成手順
  • MySQL マスタースレーブレプリケーション、読み取り/書き込み分離、バックアップとリカバリの詳細な説明
  • MySQL マスタースレーブレプリケーション 読み書き分離の設定方法の詳細説明
  • Linux システムで MySQL マスター/スレーブ分離を構成する手順

<<:  Vue ベースの要素ボタン権限実装ソリューション

>>:  Dockerはbusyboxを使用してベースイメージを作成します

推薦する

Vue3 を使用してアップロード コンポーネントを実装するためのサンプル コード

目次一般的なアップロードコンポーネントの開発以下の機能を実装する必要がありますカスタムテンプレートサ...

ハイパーリンクのWebデザイン原則

<br />関連記事: Web コンテンツ ページ作成のための 9 つの実用的なヒント、...

tomcatでcatalina.outログをカットする3つの方法の詳細な説明

1. ログセグメンテーションのためのLog4j 1) log4j-1.2.17.jar、tomcat...

仮想マシンに Windows Server 2008 オペレーティング システムをインストールする

この記事では、Windows Server オペレーティング システムのインストールと企業でのそのア...

JS でカルーセル効果を実現する 3 つの簡単な方法

この記事では、JSカルーセル効果の具体的なコードを実現するための3つの方法を紹介します。具体的な内容...

SQL文のANDとORの実行順序で発生する問題

質問昨日、データベースSQLを書いているときに問題が発生しました。問題の根本は、SQL ステートメン...

Dockerでコンテナを作成するときにコンテナIPを指定する実装例

Docker はコンテナを作成するときに、デフォルトでブリッジ ネットワークを使用し、IP アドレス...

条件によるMysqlカウントの複数の実装方法を詳細に解説

最近、あるウェブサイトのバックエンドに一連の統計機能を追加していたのですが、条件によるカウントが必要...

Linux のプロセスクラッシュの原因をコアダンプ技術を使用して追跡する簡単な分析

最近、プロジェクトで問題が発生しました。サーバー側のプログラムが突然クラッシュして終了しました。クラ...

docker runとstartの違い

docker における実行と開始の違いDocker run はミラーイメージを指定します。そしてdo...

Linuxでシンボリックリンクを削除(削除)するコマンド

Linux では、シンボリック リンクを作成または削除する必要がある場合があります。もしそうなら、何...

MySQL のデータベース パフォーマンスに影響を与える要因の説明

データベースのパフォーマンスに関する話面接では、「データベースにどのくらい精通していますか?」など、...

Reactでコンポーネントロジックを共有する3つの方法

簡単に説明すると、これら 3 つの方法は、レンダリング プロップ、高階コンポーネント、カスタム フッ...

MySQL 8.0.18 のインストールと設定方法のグラフィックチュートリアル

この記事は、参考のためにMySQL 8.0.18のインストールと設定のグラフィックチュートリアルを記...

Docker コンテナにデプロイされた Django のタイムゾーンの問題

目次Django でのタイムゾーン設定USE_TZ=真USE_TZ=偽Linux コンテナでのタイム...