ホームページ > データベース > mysql チュートリアル > Linux 上で mysql マスター/スレーブ サーバーを構築する

Linux 上で mysql マスター/スレーブ サーバーを構築する

王林
リリース: 2020-01-30 20:17:54
転載
3585 人が閲覧しました

Linux 上で mysql マスター/スレーブ サーバーを構築する

目標を達成するには、

次に、2 つの MySQL サーバー (マスター サーバーとスレーブ 1 台) を構築する必要があります。 1 つはスレーブ サーバーとして、マスター サーバーは書き込み操作を実行し、スレーブ サーバーは読み取り操作を実行します。

ワークフロー

メイン サーバー:

バイナリ ログを有効にする

一意のサーバー ID を構成する

マスター バイナリ ログ ファイルの名前と場所

スレーブとマスターの通信用のユーザー アカウントを作成します。

スレーブ サーバー:

一意のサーバー ID を構成します

マスターによって割り当てられたユーザー アカウントを使用してマスター バイナリ ログを読み取ります

スレーブを有効にしますサービス。

(無料の学習ビデオ チュートリアルの推奨: mysql ビデオ チュートリアル)

準備

マスター/スレーブ データベースのバージョン同じ状態を保つことが最善です。

マスター データベースとスレーブ データベースのデータは一貫している必要があります。

マスター データベース: 192.168.244.201: 3306

スレーブ データベース: 192.168.244.202 : 3306

構成の開始

マスター サーバーの構成

マスター データベースの構成ファイル my.cnf を見つけます (my Windows の .ini)、my /etc/my.cnf
[mysqld] セクションに次の 2 行を挿入します。

[mysqld]
log-bin=mysql-bin #开启二进制日志
server-id=201 #设置server-id,唯一值,标识主机
ログイン後にコピー

mysql サービスを再起動します

systemctl restart mysqld
ログイン後にコピー
ログイン後にコピー

メイン用に作成 同期したアカウント/パスワードから MySQL を入力します。

: mysql -u root -p を入力し、Enter キーを押してパスワードを入力します。

私が作成したユーザー名は「master_root」、パスワードは「MySql@6688」です。

[注: 単純なパスワード 123456 をサポートするためにパスワードが変更されたため、新しいユーザーは、パスワードがポリシーに準拠していないなどのいくつかの問題を抱えていましたが、後で mysql を再インストールし、デフォルトの複雑なパスワードを使用したところ、問題はなくなりました。実は慣れると良いんです。 】

下記では%を使用していますが、具体的なIPは書きませんのでご自身で決めてください。

#创建用户(IP为可访问该master的IP,任意IP就写'%')
mysql> CREATE USER 'master_root'@'192.168.244.202' IDENTIFIED BY 'MySql@6688';
#分配权限(IP为可访问该 master的IP,任意IP就写'%')
mysql> GRANT REPLICATION SLAVE ON *.* TO 'master_root'@'192.168.244.202';
 #刷新权限
mysql>flush privileges;
ログイン後にコピー

マスターのステータスを確認し、バイナリ ファイル名 (mysql-bin.000001) と場所 (154) を記録します。これは、後でスレーブ ライブラリを構成するときに使用します。
#

show master status;
ログイン後にコピー

Linux 上で mysql マスター/スレーブ サーバーを構築する

#スレーブ メイン サーバーの構成

#my.cnf ファイルの変更

vim /etc/my.cnf
ログイン後にコピー
[mysqld]
server-id=202 #设置server-id,唯一值,唯一标识从库
ログイン後にコピー
mysql サービスを再起動します

systemctl restart mysqld
ログイン後にコピー
ログイン後にコピー
mysql にログインし、同期 SQL ステートメント (マスター サーバー名、マスターとスレーブのユーザー名、パスワード、バイナリ ファイル名、 location)
mysql> CHANGE MASTER TO
    -> MASTER_HOST='192.168.244.201',
    -> MASTER_USER='master_root',
    -> MASTER_PASSWORD='MySql@6688',
    -> MASTER_LOG_FILE='mysql-bin.000001',
    -> MASTER_LOG_POS=154;
ログイン後にコピー

スレーブ同期プロセスの開始

mysql>start slave;
ログイン後にコピー

スレーブのステータスの表示

show slave status\G
ログイン後にコピー
フォローしないように注意してくださいセミコロン; それ以外の場合は最後の行 報告されるエラーは次のとおりです:

ERROR: No query specified
ログイン後にコピー

Slave_IO_Running と Slave_SQL_Running の両方が YES の場合、マスターとスレーブの同期設定が成功したことを意味します。

次に、検証を実行できます。たとえば、マスター データベースのテスト データベースのテーブルにデータを挿入し、スレーブ テストの同じデータ テーブルに新しいデータがあるかどうかを確認します。マスター/スレーブ レプリケーション機能が有効かどうかを確認するには、スレーブを閉じて (mysql>stop smile;)、マスターを変更してスレーブがそれに応じて変更されるかどうかを確認することもできます (スレーブを停止した後、マスターの変更はスレーブに同期されません)、マスターとスレーブの操作が完了すると、コピー機能が検証されます。

その他の関連パラメータ:

マスターがバイナリ ログをオンにすると、デフォルトですべてのデータベースとすべてのテーブルの操作が記録されます。記録のみを指定することもできます。指定されたデータベース、または設定を通じて指定されたテーブルも指定できます。特定の操作については、mysql 設定ファイルの [mysqld] で次のオプションを追加および変更できます:

どのデータベースが同期されていませんか。

binlog-ignore-db = mysql
binlog-ignore-db = test
binlog-ignore-db = information_schema
ログイン後にコピー

その他の非同期を除き、どのデータベースのみが同期されますか

binlog-do-db = game
ログイン後にコピー

たとえば、以前にマスターのステータスを確認したときは、次のことがわかります。テスト ライブラリのみが記録され、マニュアル ライブラリと mysql ライブラリは無視されます。

おすすめの関連記事とチュートリアル:

mysql チュートリアル

以上がLinux 上で mysql マスター/スレーブ サーバーを構築するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:cnblogs.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート