ホームページ >データベース >mysql チュートリアル >mysql学習におけるマスタースレーブレプリケーションについて詳しく解説
この記事ではmysql5.5 centos6.5 64-bitを使用しています
1. マスターサーバーに問題が発生した場合、すぐにスレーブサーバーに切り替えることができます。 。
2. リアルタイム要件が高くないアプリケーション、または更新頻度が低いアプリケーションは、マスター サーバーへのアクセス負荷を軽減するために、スレーブ サーバー上でクエリ操作を実行できます。負荷効果を実現するには、データの読み取りと書き込みを分離します。
3. バックアップ期間中のマスターサーバーへの影響を避けるために、データバックアップ操作をスレーブサーバーで実行できます。
マスター/スレーブ レプリケーションの原則:
原理分析: マスター サーバーは binlog ログをオンにし、スレーブ サーバーは、マスター サーバーによって付与されたユーザーを通じてマスター サーバーによってローカルに生成された binlog ログを読み取り、それをリレーログログに変換し、リレーログログを実行します。
マスター: 192.168.6.224
スレーブ: 192.168.6.222
1. マスターサーバーでスレーブサーバーの許可ユーザーを設定します。マスターサーバー、スレーブサーバー 192.168.6.222 を設定します。ユーザー名 user2 でパスワードは 123 のユーザーを作成します
mysql>「123」で識別される user2@192.168.6.222 に *.* をすべて許可します。パラメータの説明:grant: mysql 認可キーワード *.*: すべてのライブラリとすべてのテーブル ユーザー認可が成功したかどうかを確認します:
mysql> show grants for user2@192.168.6.222;user2 がスレーブサーバーの user2 を使用してマスターサーバーの mysql にログインできるかどうかをテストします[ root@localhost tmp]# mysql -uuser2 -p123 test -h192.168.6.224;
2. メインサーバーの bin-log を開き、server-id の値を設定します。
マスターサーバーの my.cnf 設定ファイルを変更します:
[mysqld] #开启mysql的bin-log日志 log-bin=mysql-bin #主服务器该值设置为1 server-id = 1
3. bin-log ログをリセットします: mysql>
最新の bin-log ログのステータスを確認します。開始位置: mysql> ; show master status;
mysql> show master status; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000 001 | 107 | | | +------------------+----------+--------------+------------------+
4. マスターデータベースデータをバックアップします
b. ここでは、mysqldump メソッドを使用します。データをバックアップし、-l -F パラメータを直接使用します。データをバックアップするときは、読み取りロックを設定し、bin-log ログを更新します mysqldump -uroot -p111111 test -l -F > test.sql';
5. メインサーバーでバックアップしたデータをスレーブサーバーへ送信します
[root@localhost tmp]# scp mysql_back/test.sql 192.168.6.222:/tmp/mysql_back/
6. スレーブサーバーの bin-log ログをリセットし、スレーブサーバーのデータのバックアップを使用します
rester master;
[root@localhost tmp]# mysql -uroot -p111111 test -v -f< /tmp/mysql_back/test.sql;
7. スレーブ サーバーで cnf パラメータを設定します
a. #スレーブ サーバーのサーバー ID を設定します (複数のスレーブ サーバーがある場合、それぞれに固有のserver-id)
server-id = 2 b. #bin-log ログを開きますlog-bin=mysql-bin c. #必要なホスト、ユーザー名、パスワード、ポート番号を設定します。 synchronized
#配置需要同步的主机 master-host = 192.168.6.224 # The username the slave will use for authentication when connecting # to the master - required master-user = user2 # # The password the slave will authenticate with when connecting to # the master - required master-password = 123 # # The port the master is listening on. # optional - defaults to 3306 master-port = 3306
d. mysqlを再起動して設定ファイルを有効にします
mysql> change master to master_host="192.168.6.224", master_user="user2", master_password="123", master_port=3306, master_log_file="mysql-bin.000002",master_log_pos=107; mysql> slave start;
mysql . row master .bin.relaybin.bin.
Master_Log_File: ホスト上のマスターとスレーブの同期に使用されるログ ファイルの名前を表します。
Read_Master_Log_Pos: 正常に完了したログ ファイル内の場所を表します。に同期されます。
この2つの項目がメインサーバーで以前に確認されたFileとPositionの値と一致しない場合、同期は正しく実行できません。
3. テスト 1. マスターサーバーにデータを追加し、bin-log ログのステータスを確認しますmysql> insert into t1 values(13); Query OK, 1 row affected (0.02 sec) mysql> insert into t1 values(14); Query OK, 1 row affected (0.01 sec) mysql> insert into t1 values(15); Query OK, 1 row affected (0.01 sec) mysql> show master status; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000002 | 656 | | | +------------------+----------+--------------+------------------+
1. スレーブの開始 # レプリケーションスレッドを開始します
2. スレーブの停止 # レプリケーションスレッドを停止します 3. スレーブのステータスを表示 # スレーブデータベースのステータスを表示します
4. show master logs ;#マスター データベースの bin-log ログを確認します
以上がmysql学習におけるマスタースレーブレプリケーションについて詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。