ホームページ  >  記事  >  データベース  >  mysql マスター/スレーブ構成のソース コードとレプリケーション原理の詳細な紹介

mysql マスター/スレーブ構成のソース コードとレプリケーション原理の詳細な紹介

php是最好的语言
php是最好的语言オリジナル
2018-07-24 13:38:211188ブラウズ

この記事では主に mysql のマスター/スレーブ レプリケーションと読み書き分離の実装について説明します。 以下は mysql のマスター/スレーブ レプリケーションのソース コードです。 mysql データベースのインストール方法については、ここでは説明しません。マスターとスレーブのレプリケーションについてのみ説明します。手順は次のとおりです:

1. マスターサーバーとスレーブサーバーはそれぞれ次の操作を実行します 1.1. バージョンを一致させます
1.2. バックグラウンドで mysql を起動します
1.3. マスターサーバーを変更します


サーバーマスター: #vi /etc/my.cnf
[mysqld]
log-bin = mysql-bin // [必須] バイナリログを有効にする
server-id = 222 // [必須] サーバーの一意の ID、デフォルトは1、通常は IP


の最後の段落を取得します。 3. スレーブサーバーのスレーブを変更します: #vi /etc/my.cnf
[mysqld]
log-bin=mysql-bin //[必須ではありません] バイナリログを有効にします
server-id=226 //[必須] サーバーの一意の ID、デフォルトは 1、通常は IP の最後のセグメントを取得します


4. 2 つのサーバーの mysql を再起動します /etc/init.d/mysql restart


5. メインサーバーでアカウントを作成し、スレーブを承認します: #/usr/local/mysql/bin/mysql -uroot -pmttang mysql>GRANT REPLICATION SLAVE ON *.* to 'mysync'@'% ' 'q123456'; // 通常、root アカウントは使用されません。「%」は、アカウントとパスワードが正しい限り、すべてのクライアントが接続できることを意味します。代わりに、192.168 などの特定のクライアント IP を使用できます。 .145.226、セキュリティを強化します。


6. メインサーバーの mysql にログインし、マスターのステータスをクエリします
mysql>show master status; +-----------------+ ------ ----+--------------+---------------------+
| 位置| ビンログ_Do_DB | ビンログ_無視_DB |
+----------+----------+------------- -------+
|
| ----+--- --------+--------------+----+
セット内の 1 行 (0.00 秒)
注: マスター サーバーのステータス値が変更されないように、この手順を実行した後はマスター サーバー MYSQL を操作しないでください


7. スレーブ サーバー Slave を設定します:
mysql>マスターを次のように変更します。 master_host='192.168.145.222',master_user= 'mysync',master_password='q123456', master_log_file='mysql-bin.000004', master_log_pos=308; // 切断しないように注意してください。前と308番の後ろ。

Mysql>start smile; //スレーブサーバーレプリケーション機能を開始します


8. スレーブサーバーレプリケーション機能のステータスを確認します:
show smile statusG

************ ** ************* 1.行 ****************************

Slave_IO_State: 待機中for master To Send Eventd Master_host: 192.168.2.222 // メインサーバーのアドレス
Master_user: mysync // 承認されたアカウント名、ROOT の使用を避けるようにしてください
MASTERT_PORT: 3306 // データベースのポート: MySQL -bin.000004a Read_Master_LOG_POS: 600 //#exec_master_log_pos と同等以上のバイナリ ログの位置を同期読み取りします
関連する Aster_log_file: MySQL-BIN.000004
SLAVE_IO_RUNNING: Yes // このステータスは YES でなければなりません
Slave_SQL_Running:使用するusing using using using のuse using 's to use 's 's' through 's' through 's' through 's using 's' through ‐to ‐ ‐‐‐‐はエラーです)。

上記の操作プロセスの後、マスターサーバーとスレーブサーバーの構成が完了します。


9. マスター/スレーブ サーバーのテスト:


マスター サーバー Mysql、データベースを作成し、データを挿入するためのテーブルをこのライブラリに作成します:

create Database hi_db;
  クエリは OK、1 行が影響を受けました (0.00 秒)

mysql> use hi_db;
データベースが変更されました

mysql>  create table hi_tb(id int(3),name char(10));
クエリ OK、影響を受ける行は 0 (0.00 秒)

mysql> insert into hi_tb names(001,'bobu');
クエリ OK、1 行が影響を受けました (0.00 秒)

mysql>データベースを表示;
+--------------------+
|データベース |
+---------+
|情報スキーマ |
| hi_db |
| mysql |
| test |
+---------+
セット内の 4 行 (0.00 秒)

从服务器Mysql查询:

mysql>データベースを表示;

+---------+
|データベース |
+---------+
|情報スキーマ |
| hi_db |       //私はここにいます,大家看到了吧
| mysql |
| test |

+---------+
セット内の 4 行 (0.00 秒)

mysql> hi_db を使用してください
データベースが変更されました
mysql> hi_tb から * を選択;           //主サービス上の新しい特定のデータを見る
+------+------+
| ID |名前 |
+------+------+
|    1 | bobu |
+------+------+
セット内の 1 行 (0.00 秒)

10、完了:
编写一シェル書き、nagios 监制御スレーブ用两个はい(Slave_IO および Slave_SQL 手順)、1 つまたは 0 つだけがはいであるように、主に問題があることを示し、短信警吧を発行します。

详解MySQL实现主从复制过程-mysql教程

mysql教程:MySQLどのように主从复制过程の例详解

以上がmysql マスター/スレーブ構成のソース コードとレプリケーション原理の詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。