1. はじめに 以前、「MySQL マスター スレーブ同期の原理」という記事を書きました。 この記事を読んだ皆さんは、ぜひ試してみたくなったのではないでしょうか? 今日はMySQLのマスタースレーブ同期を実際に体験してみます! 2. 環境の説明 OS: Ubuntu 16.04 マイスク:5.7.17 以下の実践演習はすべて上記の環境を前提としています。もちろん、他の環境も同様です。 3. 実戦参加 道具 2台のマシン: マスターIP:192.168.33.22 スレーブIP:192.168.33.33 マスターマシンでの操作 1. 設定ファイルを変更する
構成は次のとおりです。 bind-address = 192.168.33.22 #マスターIP server-id = 1 #マスタースレーブアーキテクチャでは、各マシンノードに一意のserver-idが必要です log_bin = /var/log/mysql/mysql-bin.log #binlogを開く 2. 設定ファイルを有効にするために MySQL を再起動します。 sudo systemctlでmysqlを再起動します 3. マスターとスレーブの同期用の mysql ユーザーを作成します。 $ mysql -u ルート -p パスワード: ##slave1 ユーザーを作成し、ユーザーがホスト 192.168.33.33 にのみログインできるように指定します。 mysql> 'slave1'@'192.168.33.33' というユーザーを作成し、'slavepass' で識別します。 クエリは正常、影響を受けた行は 0 行 (0.00 秒) ##slave1 に REPLICATION SLAVE 権限を与えます。 mysql> 'slave1'@'192.168.33.33' に *.* のレプリケーションスレーブ権限を付与します。 クエリは正常、影響を受けた行は 0 行 (0.00 秒) 4. MYSQLに読み取りロックを追加する マスター データベースのデータとスレーブ データベースのデータの一貫性を保つために、まず MySQL に読み取りロックを追加して読み取り専用にします。 mysql> 読み取りロック付きでテーブルをフラッシュします。 クエリは正常、影響を受けた行は 0 行 (0.00 秒) 5. マスターレプリケーションログの場所を記録する この情報は後で使用されます。 mysql> マスターステータスを表示します。 +------------------+----------+--------------+------------------+------------------+ | ファイル | 位置 | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +------------------+----------+--------------+------------------+------------------+ | mysql-bin.000001 | 613 | | | | +------------------+----------+--------------+------------------+------------------+ セット内の 1 行 (0.00 秒) 6. マスターDBの既存データ情報をエクスポートする $ mysqldump -u root -p --all-databases --master-data > dbdump.sql 7. マスターDBの読み取りロックにアクセスする mysql> テーブルのロックを解除します。 8. 手順6のdbdump.sqlファイルをスレーブにコピーします。 scp dbdump.sql [email protected]:/home/ubuntu スレーブマシンでの操作 1. 設定ファイルを変更する
次のように構成を変更します。 bind-address = 192.168.33.33 #スレーブIP server-id = 2 #マスタースレーブ構造内の一意のサーバーID log_bin = /var/log/mysql/mysql-bin.log #binlogを開く 2. 設定ファイルを有効にするためにMySQLを再起動します。 sudo systemctlでmysqlを再起動します 3. マスター DB からインポートします。 マスターとスレーブのデータの整合性を保つために dbdump.sql ファイルをエクスポートする $ mysql -u root -p < /home/ubuntu/dbdump.sql 4. 同期のためにスレーブとマスター間の接続を確立する $ mysql -u ルート -p パスワード: mysql> スレーブを停止します。 クエリは正常、影響を受けた行は 0 行、警告は 1 件 (0.00 秒) mysql> マスターを変更する -> MASTER_HOST='192.168.33.22', -> MASTER_USER='slave1'、 -> MASTER_PASSWORD='slavepass'、 -> MASTER_LOG_FILE='mysql-bin.000001', -> MASTER_LOG_POS=613; クエリは正常、影響を受けた行は 0 行、警告は 2 件 (0.01 秒) mysql>スレーブを起動します。 クエリは正常、影響を受けた行は 0 行 (0.00 秒) MASTER_LOG_FILE='mysql-bin.000001'およびMASTER_LOG_POS=613の値は、上記のSHOW MASTER STATUSから取得されます。 この設定後、マスタースレーブ同期を行うことができます〜 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: js 属性オブジェクトの hasOwnProperty メソッドの使用
>>: Weibo の一括フォロー解除機能を実装する JavaScript コード
フロントエンド開発者が習得する必要のあるスキル。これらのスキルにより、フロントエンド開発者の価値は数...
1. PPTP VPNを構築するには、ポート1723とGREプロトコルを開く必要があります。 1. ...
<meta name="viewport" content="w...
Docker を使用すると、外部からコンテナにアクセスしたり、コンテナを相互接続したりすることで、ネ...
目次ストアドプロシージャの概要ストアド プロシージャを使用する理由は何ですか?ストアドプロシージャの...
私は長い間PHPに触れてきましたが、インストール環境は非常に不慣れです。多くの問題に遭遇しました。B...
序文文字セットは、一連のシンボルとエンコード規則です。Oracle データベースでも MySQL デ...
序文私のように、Java バックエンドに勤勉な人であれば、多数のプロジェクト機能を実装することに加え...
目次1. DHCP サービス (動的ホスト構成プロトコル) 1. 背景2. 概要3. 利点4.DHC...
1.Docer CEをインストールして使用するこの記事では、CentOS 7 を例に Docker ...
Mysql でよく使用される表示コマンド1. 現在のデータベース サーバー内のデータベースの一覧を表...
目次開発環境ゲームエンジンのコンセプトCocos Creatorについてプロジェクト構造コード編集環...
概要通常、データベース内のデータを直接表示することは望ましくないため、最後の 2 つのセクションでは...
Docker はポートを IPv6 にのみマッピングし、IPv4 にはマッピングしません。 dock...
MySQL UTF-8 エンコーディングMySQL は 2003 年のバージョン 4.1 から U...