Mysql5.7 でマスター/スレーブ レプリケーションを設定するにはどうすればよいですか?次の記事では、Mysql5.7 マスター/スレーブ レプリケーションを構築する手順を紹介しています。必要な友人はそれについて学ぶことができます~
マスター/スレーブ レプリケーションにより、データベースのバックアップと読み取り/書き込みの分離を実現できます。
サービスの利用不能を回避し、データのセキュリティと信頼性を確保するには、少なくとも 2 つのレプリケーションを導入する必要があります。または複数 データベース データを保存するために複数のサーバーが使用されます。つまり、データをコピーして複数の異なるサーバーにデプロイする必要があります。1 つのサーバーに障害が発生した場合でも、他のサーバーは引き続きサービスを提供できます。
MySQL が提供するサービスサービスの可用性とデータのセキュリティと信頼性を向上させるマスター/スレーブ レプリケーション機能。
マスター/スレーブ レプリケーションとは、サーバーをマスター サーバーとスレーブ サーバーに分割することを意味します。マスター サーバーは読み取りと書き込みを担当し、スレーブ サーバーは読み取りと書き込みを担当します。サーバーは読み取りのみを担当します。マスターとスレーブのレプリケーションはマスターとも呼ばれます。/slave、マスターはマスター、スレーブはスレーブですが、強制はありません。つまり、スレーブは書き込みもでき、マスターは読み取りもできます。 , しかし、一般的にはこのようなことはしません。
1 つのマスターと複数のスレーブのアーキテクチャ:
複数のマスターと複数のスレーブ複数のスレーブ アーキテクチャ :
マスター/スレーブ レプリケーションの原則 :
ビルド環境:1. Linux バージョン CentOS リリース 6.9 (最終版)
2. mysql -5.7.26-linux-glibc2.12- x86_64.tar.gz
ダウンロード アドレス
1. mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz を解凍します。 #
#/usr/local下解压 tar xzvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz #重命名文件 mv mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz mysql
2. マルチインスタンス データ ディレクトリの作成##cd /usr/local/mysql
mkdir data
cd data
#主
mkdir 3306
#从
mkdir 3307
#3. データベースの初期化
#mysql 安装bin目录下执行 #initialize-insecure 表示不生成MySQL数据库root用户的随机密码,即root密码为空 #初始化3306 ./mysqld --initialize-insecure --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/3306 --user=mysql #初始化3307 ./mysqld --initialize-insecure --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/3307 --user=mysql
yum -y install numactl
4。各データベースの構成ファイル my.cnf を作成します
注:
1. Windows と Windows 間のコーディングの不一致を防ぐために、Linux でファイルを作成することをお勧めします。 linux
2. さまざまなインスタンスの構成要件 ポート番号を変更します
#3. 変更した my.cnf をそれぞれ 3306 フォルダーと 3307 フォルダーに配置します
[client] port = 3306 socket = /usr/local/mysql/data/3306/mysql.sock default-character-set=utf8 [mysqld] port = 3306 socket = /usr/local/mysql/data/3306/mysql.sock datadir = /usr/local/mysql/data/3306 log-error = /usr/local/mysql/data/3306/error.log pid-file = /usr/local/mysql/data/3306/mysql.pid character-set-server=utf8 lower_case_table_names=1 autocommit = 1 log-bin=mysql-bin server-id=3306
5. 複数のインスタンスを開始します
/usr/local/mysql-5.7.24/bin ディレクトリに切り替え、msyqld_safe コマンドを使用して構成ファイルを指定して開始しますMySQL サービス:
#其中 --defaults-file 是指定配置文件,& 符合表示后台启动 ./mysqld_safe --defaults-file=/usr/local/mysql/data/3306/my.cnf & ./mysqld_safe --defaults-file=/usr/local/mysql/data/3307/my.cnf &
6. データベース初期化設定
各インスタンスでそれぞれ設定します (例: 3306:
)#客户端连接 ./mysql -uroot -p -P3306 -h127.0.0.1 #修改Mysql密码 alter user 'root'@'localhost' identified by 'root'; #授权远程访问(这样远程客户端才能访问) grant all privileges on *.* to root@'%' identified by 'root'; #刷新配置 flush privileges;
クライアント接続テスト
7. データベース固有 ID の設定
1. 各インスタンスが起動することを確認します。インスタンスを閉じると、次の設定が各インスタンスの my.cnf ファイルにそれぞれ追加されます
#/usr/local/mysql/bin 关闭实例 ./mysqladmin -uroot -p -P3307 -h127.0.0.1 shutdown ./mysqladmin -uroot -p -P3306 -h127.0.0.1 shutdown #新加的配置 log-bin=mysql-bin #表示启用二进制日志 server-id=3307 #表示server编号,编号要唯一 建议和端口保持一致
各インスタンスを起動します追加後
#
./mysqld_safe --defaults-file=/usr/local/mysql/data/3306/my.cnf & ./mysqld_safe --defaults-file=/usr/local/mysql/data/3307/my.cnf &
7. ホスト設定1. メインサーバーにデータをコピーするためのアカウントを作成し、承認します
#在/usr/local/mysql/bin目录下执行 ./mysql -uroot -p -P3306 -h127.0.0.1 grant replication slave on *.* to 'copy'@'%' identified by 'root';
2. メイン サーバーのステータスを確認します
# mysql主服务器默认初始值: # File:mysql-bin.000001 # Position:154 show master status;
3. メイン サービスの状態が初期状態でない場合は、状態をリセットする必要があります reset master;
7. スレーブ マシンの設定1.
必須 3306|3307|3308
#在/usr/local/mysql/bin目录下执行 多台从机‘|’分隔 ./mysql -uroot -p -P3308|3309|3310 -h127.0.0.1
#初始状态:Empty set show slave status;
3. 初期状態でない場合はリセットしてくださいstop slave; #停止复制,相当于终止从服务器上的IO和SQL线程 reset slave;
4. スレーブマシンの設定とホスト構成の設定change master to master_host='主机ip',master_user='copy', master_port=主机端口,master_password='连接主机密码', master_log_file='mysql-bin.000001',master_log_pos=154;
5. コピー開始コマンドの実行
start slave;
6. スレーブステータスの確認show slave status \G;
7.测试主从复制
在主数据库中进行创建表,从库同步就算搭建成功了!
若你在从库进行写操作,则从服务器不再同步主库数据,在从库中执行此命令即可解决!
stop slave; set global sql_slave_skip_counter =1; start slave; show slave status\G;
若主从复制速度较慢的话,执行此命令
slave-parallel-type=LOGICAL_CLOCK slave-parallel-workers=16 master_info_repository=TABLE relay_log_info_repository=TABLE relay_log_recovery=ON
相关学习推荐:mysql教程(视频)
以上がMysql5.7 でマスター/スレーブ レプリケーションを設定する方法を段階的に説明します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。