目標を達成するには、
次に、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;
#my.cnf ファイルの変更
vim /etc/my.cnf
[mysqld] server-id=202 #设置server-id,唯一值,唯一标识从库
systemctl restart mysqld
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 設定ファイルの [mysqld] で次のオプションを追加および変更できます:
どのデータベースが同期されていませんか。
binlog-ignore-db = mysql binlog-ignore-db = test binlog-ignore-db = information_schema
その他の非同期を除き、どのデータベースのみが同期されますか
binlog-do-db = game
たとえば、以前にマスターのステータスを確認したときは、次のことがわかります。テスト ライブラリのみが記録され、マニュアル ライブラリと mysql ライブラリは無視されます。
おすすめの関連記事とチュートリアル:mysql チュートリアル
以上がLinux 上で mysql マスター/スレーブ サーバーを構築するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。