人々はいつも私に、読み書きを分離できるかどうか尋ねます。時々、どう答えていいか本当にわかりません。このように言いましょう。テクノロジー自体は難しくありません。難しいのは、これほど大きなプロジェクトに出会うことはできないということです。このような大きなプロジェクトであれば、読み書きの分離は決して一人や二人ではなく、多くの人の協力が必要です。
関連する学習に関する推奨事項: mysql ビデオ チュートリアル
それでは!やったことがないんです。
でも...
実験環境としては使えないのでしょうか? (気まずい笑顔)
資料探しから実験実施まで、合計3日かかりました(一日中集中して取り組んでいたわけではないので)。基本的には完了しています。つまり、誰かがそれを行う方法を知っているかと尋ねたら、私はすでにそれを行っており、それは難しい作業ではないと答えます。
#メイン ライブラリで動作するコマンドは次のとおりです。
##mysql > show master status; #View master status ライブラリのステータスmysql >
.のレプリケーション スレーブを 'slave'@'%ip%' に許可します。 'password'; # 背後の説明: 'slave' はどのアカウントを表します、@ はスレーブ サーバーの IP、by はパスワードです; systemctl status firewalld
# ファイアウォールのステータスを確認しますfirewall-cmd – list-all # ファイアウォールのポートリストを表示します
firewall-cmd –permanent –zone=public –add-port=3306/tcp
# ポート 3306 を解放します。firewall- cmd –reload
# ファイアウォールを再起動します。
さらに、iptable がある場合は、それを確認できます。自分自身
mysql> stop smile; // Stop replication
- mysql> set slide; // レプリケーションをリセット
- mysql> start smile; // レプリケーションを開始
- mysql> show slide status\G;
- # View status
マスターサーバーでの設定スレーブ サーバー 192.168.5.239 centos 7.4
- マスター/スレーブ構成にログを使用する
# aster live copy configurelog-bin=mysql-bin / /ログ ファイル名 binlog_format=mixed //このログ形式にはいくつかのオプションがあります。誰もが混合オプションを選択します。statement/row/mixed、詳細については、公式ドキュメント server を参照してください。 -id = 238 //繰り返し使用を避けるため、サーバー IP の最後の 1 桁を使用して名前を付けるようにしてください
skip_name_resolve=ON //これを直接書きます。以上です。他の人のドキュメントを参照してください。
expire_logs_days = 10 //ログの保存日数を設定します。これは追加する必要はないと思います。テスト環境では正式に起動して実行する場合は追加する必要があるため、追加しても問題ありません。
# /etc/init.d/mysql restart // これは必ずしもこのコマンドである必要はありません。centos のインストール方法によって異なります。systemctl restart mysql もあります。 Linux の操作
##2 つのサーバーがコピーされていない場合、auto.cnf の uuid は異なるはずです。コピーされている場合は、確認してください。これは mysql インストール ディレクトリの /var およびディレクトリにありますか。このファイルを削除するか、mv でバックアップしてください。
ライブラリからの設定# mysql -uroot -p "password" //mysql サーバーにログインすると、パスワードの入力を求められます
mysql>GRANT レプリケーション スレーブ ON . TO 'スレーブ'@'%' IDENTIFIED BY '111111'; // レプリケーションがレプリケーション権限を割り当てることを説明します。この . はどのライブラリを操作できますか。最後の 'slave'@'%' は、どのホストでも操作できることを意味しますスレーブを使用してライブラリからコピーするか、IP の後にパスワードを指定することもできます ha
mysql> show master status;
—————— ————- ————– ——— ——— ——————-
| ファイル | 位置 | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
—————— ————- ————– —————— — ————-
| mysql-bin.000010 | 2812 | # 上記の表が表示されている場合は成功を示しています
log-bin=mysql-bin //ログ ファイル名
binlog_format=mixed //ログ形式server-id =239 / /サーバー ID これは、IP の末尾を使用して、メイン サーバーと同じように説明されます
#expired_logs_days = 10 //これを
# 初期にコメントアウトしました-plugin-load = "" //当面は使用しません。有効であれば設定可能です。この項目、マスター/スレーブレプリケーションは重要な項目ではありません
relay_log = mysql-relay-bin / /これはスレーブ ライブラリからのレプリケーション ログです relay_log_index=relay_log.index //ログ インデックス
# /etc/init.d/mysql restart // これは必ずしもこのコマンドであるとは限りません。これは、centos のインストール方法によって異なります。systemctl restart mysql もあります。これが理解できない場合は、Linux の操作についてさらに調査してください。スレーブ ライブラリ
##スレーブ ライブラリの mysql ターミナルを入力します #mysql -uroot -p //ターミナルを入力します
スレーブを閉じる
# スレーブ ライブラリを設定する前にスレーブを閉じるように注意してください;##mysql>stop smile; //これはスレーブ ライブラリを閉じるためです。
mysql>マスターを
master_host='192.168.5.238',master_user=に変更します'slave',master_log_pos=2812; //メイン ライブラリの show master ステータスを確認します。master_password='上記のマスターライブラリのコピー権限を設定する際のパスワードを記入してください',
master_log_file='mysql-bin.000010', //マスターライブラリのファイル名を記入してください show masterここにステータスがあるので、場所をコピーするだけです。
マスター/スレーブ レプリケーションが成功したかどうかを確認します
mysql>start smile; //スレーブ ライブラリを開始します
Slave_IO_State: Waiting for master to send event Master_Host: 192.168.5.238 Master_User: slave Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000010 Read_Master_Log_Pos: 2812 Relay_Log_File: mysql-relay-bin.000013 Relay_Log_Pos: 3025 Relay_Master_Log_File: mysql-bin.000010 Slave_IO_Running: Yes Slave_SQL_Running: Yes
cd /usr/local/mysql/var## mv auto.cnf auto.cnf.back //これが存在するかどうかを確認し、存在しない場合は操作しないでください。存在する場合はそれで終わりです# /etc/init.d/ mysql restart //データベースを再起動します
##概要:これまでのところ、ログベースのマスター/スレーブ レプリケーションが完了しています
以上がmysqlログベースのマスター/スレーブレプリケーションの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。