乾物!Windowsシステムで共有するMySQLマスター/スレーブレプリケーション環境を構築する

バックグラウンド

最近、Spring Aopを使用してデータベースの読み取りと書き込みの分離機能を実現する方法を学んでいます。

コードを記述する前に、最初に行うことはMySQL環境をデプロイすることです。読み取りと書き込みが分離されているため、少なくとも2つのmysqlインスタンスをデプロイする必要があります。メモリが不足しているため、MySQLのマスター/スレーブインスタンスをWindowsで直接構築することを計画しています(仮想マシンを開きたくない)が、このプロセスでいくつかの問題が発生しました。最終的には解決されましたが、時間がかかりました。将来同じものに時間を浪費することを避け、誰もが同じシーンを簡単に複製できるようにするために、今日の環境をセットアップするプロセスを共有しましょう。

環境の説明

ローカルアドレス:127.0.0.1(localhost)

mysqlバージョン:mysql-5.7.28-winx64

メインライブラリサービス名:マスター、ポート3307

スレーブサービス名:スレーブ、ポート3308

マスターライブラリマスターをインストールして構成する

ダウンロード

1つ目は、mysqlをダウンロードし、公式Webサイトに直接アクセスして、インストールパッケージのzipバージョンをダウンロードすることです。比較的新しいバージョンをダウンロードすることをお勧めします。たとえば、作者のバージョンは5.7です。これは、インターネット上の多くの偉大な神の示唆でもあります。

乾物! Windowsシステムで共有するMySQLマスター/スレーブレプリケーション環境を構築する

my.iniファイルを解凍して作成します

インストールパッケージを解凍し、フォルダーマスターに名前を付け、フォルダーを入力し、my.iniという名前の空のテキストを作成します。

乾物! Windowsシステムで共有するMySQLマスター/スレーブレプリケーション環境を構築する

テキストの内容は次のとおりです。

[client]
# 端口号,默认是3306,同一个环境下不同的mysql实例端口号不能相同
port=3307
default-character-set=utf8
[mysqld] #主库配置server_id=1
log_bin=master-binlog_bin-index=master-bin.index# 设置为自己MYSQL的安装目录basedir=D:/software/mysql/master
# 设置为MYSQL的数据目录,data文件夹由mysql自动生成datadir=D:/software/mysql/master/data
port=3307
character_set_server=utf8sql_mode=NO_ENGINE_SUBSTITUTION,NO_AUTO_CREATE_USER# 开启查询缓存explicit_defaults_for_timestamp=true

ps:構成コンテンツのディレクトリアドレスは、バックスラッシュではなくスラッシュを使用する必要があります。そうでない場合、インストールサービスは、ディレクトリが見つからないというエラーを報告します。

マスターライブラリのサービスをインストールする

1. cmd管理者として実行し、マスターのbinディレクトリを入力します。

乾物! Windowsシステムで共有するMySQLマスター/スレーブレプリケーション環境を構築する

2.初期化コマンドを実行します。

mysqld --initialize --user=mysql --console

次のようなアップグレードが表示されれば、初期化は成功しています。初期化が成功すると、システムは自動的にデータフォルダーを生成し、初期パスワードを生成します。

乾物! Windowsシステムで共有するMySQLマスター/スレーブレプリケーション環境を構築する

3.初期化が完了したら、コマンドを実行してサービスをインストールします。

mysqld --install master --defaults-file="D:\software\mysql\master\my.ini" 

masterはサービスの名前、-defaults-fileはiniファイルのパス、「サービスが正常にインストールされました」は成功を意味します

乾物! Windowsシステムで共有するMySQLマスター/スレーブレプリケーション環境を構築する

注:インストールが失敗した場合は、cmdを実行する管理者がいないかどうかを確認してください。

通常、マスターサービスのインストール後にmysqlを起動できますが、ピットがあるため、レジストリのマスターサービスの情報である構成が1つ少ないため、mysqlの直後にエラーが報告されます。

乾物! Windowsシステムで共有するMySQLマスター/スレーブレプリケーション環境を構築する

したがって、レジストリを変更する前に起動コマンドを実行しないことをお勧めします。

4.レジストリを変更します

win + Rを押し、ポップアップボックスにregeditと入力してレジストリを開き、マスターサービスを見つけます。パスはHKEY_LOCAL_MACHINE–> SYSTEM–> CurrentControlSet–> Services–> masterでImagePathを次のように変更します。

D:\software\mysql\master\bin\mysqld --defaults-file=D:\software\mysql\master\my.ini master

パスは、インストールしたマスターデータベースフォルダーに対応します。

5.サービスを開始します

引き続きbinディレクトリでスタートアップサービスを実行します。コマンドはnet master startであり、正常に起動すると次のプロンプトが表示されます。

乾物! Windowsシステムで共有するMySQLマスター/スレーブレプリケーション環境を構築する

6. mysqlを入力します

mysqlに入るコマンドはmysql -u root -p  ですが、ポート番号を変更したため、コマンドをmysql -u root -P3307 -p変更し、生成された初期化パスワードを入力してmysqlに入る必要があります。

乾物! Windowsシステムで共有するMySQLマスター/スレーブレプリケーション環境を構築する

この初期パスワードはあまりにも面倒なので、パスワードを変更する方がよいでしょう。変更ステートメントは次のとおりです。

set password=password('新密码');

たとえば、LZによって設定されたパスワードは123456です。

乾物! Windowsシステムで共有するMySQLマスター/スレーブレプリケーション環境を構築する

このようにして、rootユーザーのパスワードが正常に設定され、Navicatなどのグラフィカルツールを使用して、データベースを操作および接続できます。

乾物! Windowsシステムで共有するMySQLマスター/スレーブレプリケーション環境を構築する

ライブラリからスレーブをインストール

スレーブライブラリのインストール手順は、メインライブラリと同じですが、my.iniで対応する構成を変更できる点が異なります。

[client]
port=3308
default-character-set=utf8
[mysqld] #从库配置server_id=2
relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin
# 设置为自己MYSQL的安装目录 basedir=D:/software/mysql/slave# 设置为MYSQL的数据目录 datadir=D:/software/mysql/slave/dataport=3308
character_set_server=utf8sql_mode=NO_ENGINE_SUBSTITUTION,NO_AUTO_CREATE_USER#开启查询缓存explicit_defaults_for_timestamp=true

関連付けを実現するマスタースレーブライブラリ

2つのライブラリをインストールしたら、マスターライブラリとスレーブライブラリ間の関連付けを操作して、マスターとスレーブ間のレプリケーションを実現できます。

最初にメインライブラリにログインし、show master statusと入力します。

乾物! Windowsシステムで共有するMySQLマスター/スレーブレプリケーション環境を構築する

ログファイルであるメインライブラリにバイナリファイルが生成されており、スレーブライブラリと関連付けることでメインライブラリとの同期を実現できます。

ライブラリからログインし、次のコマンドを実行します。

change master to master_host='127.0.0.1',master_port=3307,master_user='root',master_password='123456',master_log_file='master-bin.000001',master_log_pos=0;

上記がマスターライブラリの構成情報であることを確認することは難しくありません。成功したら、コマンドstart slaveを実行してマスター/スレーブレプリケーションを有効にします。

乾物! Windowsシステムで共有するMySQLマスター/スレーブレプリケーション環境を構築する

完了したら、確認してマスターライブラリにデータベースを作成します。名前はtestです。

乾物! Windowsシステムで共有するMySQLマスター/スレーブレプリケーション環境を構築する

次に、同じデータベーステストがスレーブでも生成されます。

乾物! Windowsシステムで共有するMySQLマスター/スレーブレプリケーション環境を構築する

このようにして、マスター/スレーブレプリケーションが正常に実現されます。

追記

2つのライブラリは一方向にのみ関連しているため、スレーブライブラリにデータを書き込む場合、マスターライブラリは同期できないことに注意してください。したがって、スレーブライブラリはデータの読み取りにのみ使用できますが、メインライブラリは書き込みと読み取りの両方が可能です。もちろん、ほとんどの場合、データの書き込みに使用されます。データの読み取りは通常ライブラリから取得されるため、メインライブラリの効率を減らすことができますストレスは、読み書きの分離と呼ばれることが多いものです。

記事が気に入ったら、コメントを付けて転送し、編集者に注意を払ってください。フォローアップ編集者は、より充実した学習コンテンツの更新を提供します。みんなが気に入ってくれることを願っています~~~

おすすめ

転載: blog.csdn.net/Java_msb666/article/details/108646826