mysql5.7マスタースレーブ同期、windowsマスター、linuxスレーブの構成
3354 ワード
1、mysqlをダウンロードする
masterはwindowsにインストールして、msiインストール版の公式サイトのリンク:https://dev.mysql.com/downloads/windows/installer/
Windowsのインストール手順:https://jingyan.baidu.com/article/90bc8fc8615c99f653640cc4.html
slaveはVMwareのcentos 7にインストールされています.参考:https://blog.csdn.net/vipbupafeng/article/details/80271089
2、マスター構成
Windows修正E:ProgramDataMySQLMySQL Server 5.7ディレクトリのmy.iniファイル:
構成が完了したら、コンピュータ管理サービスでmysqlを再起動します.
navicatまたはsqlyogを使用してmysqlに接続し、slave接続専用のユーザーを新規作成します.
create user 'slave'@'192.168.229.129' identified by '123456';
192.168.229.129はcentosのipであり、このクライアントだけがslaveを使用して接続できることを示している.
次にslaveマスターに同期操作の許可を与えます.
grant replication slave on *.* to 'slave'@'192.168.229.129' identified by '123456';
flush privileges;
テストするとrootユーザーを直接使用し、ユーザーの作成をスキップし、直接権限を付与することができます.
grant replication slave on *.* to 'root'@'%' identified by 'root';
flush privileges;
%は、任意のクライアントがrootユーザーで接続できることを示します.
マスターステータス情報の表示:showマスターstatus;
FileとPositionの記録
3、slave構成
編集:vi/etc/my.cnf
slaveを再起動:servicemysql restart
注意ファイアウォールを閉じるか、3306ポートを開いてください.
ログインslave構成同期master情報:
master_log_fileとmaster_log_posはmasterでshow master statusを使います.表示される情報
同期をオンにする:start slave;
同期ステータスの表示:show slave status;(linux端末:show slave statusG)
図中のIOとSQLはいずれもYesで同期状態が正常であることを示している
4、テスト
2つのサーバでそれぞれtestデータベースを作成し、materのtestにテーブルgirlを新規作成し、slaveに同じテーブルgirlを自動的に追加します.
master上からgirlに更新削除データを挿入し、slaveで同期して行う
5、その他
①、同期状態を表示する場合、IOとSQLにNoがある場合は、同期異常を説明し、/usr/local/mysql/data/bogon.Errでエラーログ情報を表示しますが、myできません.cngで指定:/usr/local/mysql/data/bogon.Err,再起動,エラーログ解決後にslave同期情報を再設定,start slaveでよい
②、提案:主にサーバーから同期した二つのライブラリ名とテーブル名は一致している.そうしないと、replicate-rewrite-dbとreplicate-wild-do-tableなどのパラメータを設定する必要がある.https://dev.mysql.com/doc/refman/5.6/en/replication-options-slave.html
③、古いデータベースからold_dbで既存のデータをslaveに同期するには:master的my.iniで追加:binlog-do-db=old_db masterサービスを再起動し、すべてのテーブルをロックします:flush tables with read lock; ステータスの表示:show master status;記録FileとPosition masterのdataディレクトリをold_dbフォルダをslaveのdataディレクトリにコピー slaveのmyを編集します.cnf,追加:replicate-do-db=old_db slaveサービスの再起動:service mysql restart slave同期情報の再設定: stop slave; change master to master_host="127.0.0.1",master_user="root",master_password="root",master_port=3306,
master_log_file="mysql-bin.000002",master_log_pos=154; start slave; show slave status;ステータス正常 masterテーブルのロック解除:unlock tables;
masterはwindowsにインストールして、msiインストール版の公式サイトのリンク:https://dev.mysql.com/downloads/windows/installer/
Windowsのインストール手順:https://jingyan.baidu.com/article/90bc8fc8615c99f653640cc4.html
slaveはVMwareのcentos 7にインストールされています.参考:https://blog.csdn.net/vipbupafeng/article/details/80271089
2、マスター構成
Windows修正E:ProgramDataMySQLMySQL Server 5.7ディレクトリのmy.iniファイル:
# master
server-id = 1
#
log-bin = mysql-bin
basedir = E:/Program Files/MySQL/MySQL Server 5.7/
datadir = E:/ProgramData/MySQL/MySQL Server 5.7/Data/
binlog-do-db = test
# binlog-do-db binlog-ignore-db
# binlog-ignore-db=mysql
構成が完了したら、コンピュータ管理サービスでmysqlを再起動します.
navicatまたはsqlyogを使用してmysqlに接続し、slave接続専用のユーザーを新規作成します.
create user 'slave'@'192.168.229.129' identified by '123456';
192.168.229.129はcentosのipであり、このクライアントだけがslaveを使用して接続できることを示している.
次にslaveマスターに同期操作の許可を与えます.
grant replication slave on *.* to 'slave'@'192.168.229.129' identified by '123456';
flush privileges;
テストするとrootユーザーを直接使用し、ユーザーの作成をスキップし、直接権限を付与することができます.
grant replication slave on *.* to 'root'@'%' identified by 'root';
flush privileges;
%は、任意のクライアントがrootユーザーで接続できることを示します.
マスターステータス情報の表示:showマスターstatus;
FileとPositionの記録
3、slave構成
編集:vi/etc/my.cnf
[mysqld] :
# slave ,2 32, master
server-id=2
# ,replicate-do-db replicate-ignore-db
replicate-do-db=test
#
# replicate-ignore-db=mysql
slaveを再起動:servicemysql restart
注意ファイアウォールを閉じるか、3306ポートを開いてください.
ログインslave構成同期master情報:
change master to master_host="127.0.0.1",
master_user="root",
master_password="root",
master_port=3306,
master_log_file="mysql-bin.000002",
master_log_pos=154;
master_log_fileとmaster_log_posはmasterでshow master statusを使います.表示される情報
同期をオンにする:start slave;
同期ステータスの表示:show slave status;(linux端末:show slave statusG)
図中のIOとSQLはいずれもYesで同期状態が正常であることを示している
4、テスト
2つのサーバでそれぞれtestデータベースを作成し、materのtestにテーブルgirlを新規作成し、slaveに同じテーブルgirlを自動的に追加します.
master上からgirlに更新削除データを挿入し、slaveで同期して行う
5、その他
①、同期状態を表示する場合、IOとSQLにNoがある場合は、同期異常を説明し、/usr/local/mysql/data/bogon.Errでエラーログ情報を表示しますが、myできません.cngで指定:/usr/local/mysql/data/bogon.Err,再起動,エラーログ解決後にslave同期情報を再設定,start slaveでよい
②、提案:主にサーバーから同期した二つのライブラリ名とテーブル名は一致している.そうしないと、replicate-rewrite-dbとreplicate-wild-do-tableなどのパラメータを設定する必要がある.https://dev.mysql.com/doc/refman/5.6/en/replication-options-slave.html
③、古いデータベースからold_dbで既存のデータをslaveに同期するには:
master_log_file="mysql-bin.000002",master_log_pos=154;