Windows 同一サーバー mysql マスター/スレーブ構成モード

MySQL マスター/スレーブ ライブラリの設定方法
まず、mysql データベースのグリーン インストール パッケージ (ダウンロード アドレス) をダウンロードし、2 つのコピーに解凍します。1 つは mysql マスター ライブラリ (D:/mysql/mysql5.6.17)、もう 1 つは mysql スレーブです。ライブラリ (D:/mysql/mysql5.6.17_slave)

[1]、メインライブラリ my.ini 設定情報

server-id	= 1
port=3306
basedir=D:/mysql/mysql5.6.17
datadir=D:/mysql/mysql5.6.17/data
explicit_defaults_for_timestamp = TRUE
binlog-do-db=test 
#binlog-do-db=需要复制的数据库名,如果复制多个数据库,重复设置这个选项即可
#binlog-ignore-db=不需要复制的数据库名,如果不需要复制多个数据库,重复设置这个选项即可

[1.1]、cmd を開き、最初に (cd) メイン ライブラリの bin ディレクトリに入り、次のコマンドを使用してメイン ライブラリ サービスをインストールします。

mysqld install mysql1 --defaults-file="D:\mysql\mysql5.6.17\my.ini

[1.2]、[コントロール パネル] -> [サービス] に移動してメイン データベース サービスを開始します
[1.3]、最初に次のコマンドを使用してメイン データベースに接続します。

mysql -uroot -p -P3306   

[1.4] 同期ユーザーの作成

create user 'syncuser'@'127.0.0.1' identified by '123456';

[1.5] 同期ユーザー権限の割り当て

grant replication slave on *.* to 'syncuser'@'127.0.0.1' identified by '123456';

[1.6]、コマンドを使用して: show master status、マスター ライブラリのステータスを確認します (クエリ フィールド: File および Position、これら 2 つのフィールドはそれぞれ [3.4] のコマンド パラメータ master_log_file および master_log_pos に対応します)。

[2] ライブラリ my.ini からの構成情報
ライブラリ my.ini からの構成情報

[mysqld]
port= 3307
basedir=D:/mysql/mysql5.6.17_slave
datadir=D:/mysql/mysql5.6.17_slave/data
skip-slave-start
server-id = 2

[2.1] cmd を開き、最初に (cd) メイン ライブラリの bin ディレクトリに入り、次にコマンドを使用してライブラリからサービスをインストールします。

mysqld install mysql2 --defaults-file="D:\mysql\mysql5.6.17_slave\my.ini

[3]、マスター/スレーブ設定を構成します
[3.1]、まずスレーブ ライブラリのデータ ディレクトリにある auto.cnf の uuid を変更します (uuid の数が 36 ビットであることを確認してください) (または、uuid を直接削除します)スレーブ ライブラリ サービスを開始します (時間に自動的に生成されます) (uuid エラーの繰り返しを防ぐため)
[3.2]、[コントロール パネル] -> [サービス] に移動してデータベース サービスを開始します
[3.3]、まずコマンドを使用して、スレーブライブラリ:

mysql -uroot -p -P3307

[3.4] 接続に成功したら、次のコマンドを入力します。

mysql>change master to master_host='127.0.0.1',master_port=3306,master_user='syncuser',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=498; 

[3.5]、マスター/スレーブ レプリケーション機能を開始し、次のコマンドを入力します。

start slave;

[3.6]、スレーブ ライブラリのステータスを確認し、次のコマンドを入力します。

mysql>show slave status;

Slave_IO_Running | Slave_SQL_Running フィールドの値が両方とも Yes の場合、構成は成功です。

-----設定に問題がある場合は、ライブラリ mysql2 のデータ内で err で終わるログを確認できます。

[4] テスト検証
[4.1] メインデータベース上でデータベース作成スクリプトを実行

DROP TABLE IF EXISTS `user`;
CREATE TABLE `user`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `account` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `address` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;
INSERT INTO `user` VALUES (1, 'user1', 'user1', 'user1');
INSERT INTO `user` VALUES (2, 'user2', 'user2', 'user2');
INSERT INTO `user` VALUES (3, 'user3', 'user3', 'user3);

[4.2] スレーブデータベースからユーザーテーブルが同時に作成されているか確認し、作成が成功し、マスターデータベースと同じデータが追加されていれば、主従同期設定は成功です。

【5】、設定上の注意:
binlog_do_db の設定方法は、同期するデータベースが複数ある場合、設定方法は
binlog_do_db=database1
binlog_do_db=database2です
。 binlog_do_db が設定されていない場合、すべてのデータベースは binlog-ignore-db を通じて同期されます。非同期データベースを除外する

show master status: マスター ライブラリのステータスを表示します (クエリ フィールド: ファイルと位置)

Skip-slave-start: スレーブ ライブラリのレプリケーション プロセスは、mysql の起動時に開始されません
(つまり、メイン ライブラリが再起動された後、元のスレーブ ライブラリは元のメイン ライブラリを再コピーします。これにより、同期されたデータが再び同期され、競合が発生します)

【6】、関連コマンド文
mysqlサービスコマンドのインストール

mysqld install mysql2 --defaults-file="D:\mysql\mysql5.6.17_slave\my.ini

データベースサービス削除コマンド

sc delete mysql2 -- 这里的mysql是你要删除的服务名

マスター/スレーブ コマンドを構成します (マスター ライブラリのファイルと位置は、それぞれパラメーター master_log_file と mast_log_pos に対応します)。

change master to master_host='127.0.0.1',master_port=3306,master_user='mytest',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=498;

ライブラリからのコピー機能をオンにする

start slave;

マスタ・スレーブレプリケーション機能の停止

stop slave;

メインライブラリのマスターステータスを表示する

show masterstatus;

ライブラリからスレーブのステータスを表示する

show slave status;

おすすめ

転載: blog.csdn.net/teamo_m/article/details/105783416