ホームページ >データベース >mysql チュートリアル >Mysql5.7 でマスター/スレーブ レプリケーションを設定する方法について簡単に説明します。
Mysql5.7 でマスター/スレーブ レプリケーションを設定するにはどうすればよいですか?次の記事では、Mysql5.7 でマスター/スレーブ レプリケーションを構築する手順について説明します。
マスター/スレーブ レプリケーションにより、データベースのバックアップと読み取り/書き込みの分離を実現できます:
サービスの利用不能を回避し、データのセキュリティと信頼性を確保するには、データベース データを保存するために少なくとも 2 台以上のサーバーを展開する必要があります。つまり、データをコピーして展開する必要があります。異なるサーバー上では、1 つのサーバーに障害が発生した場合でも、他のサーバーは引き続きサービスを提供できます。MySQL は、サービスの可用性、データのセキュリティと信頼性を向上させるためにマスター/スレーブ レプリケーション機能を提供します。
マスター/スレーブ レプリケーションとは、サーバーがマスター サーバーとスレーブ サーバーに分かれていることを意味します。マスター サーバーは読み取りと書き込みを担当し、スレーブ サーバーは読み取りのみを担当します。マスター/スレーブ レプリケーションは、master/ とも呼ばれます。スレーブ。マスターはマスター、スレーブはスレーブですが、必須ではありません。つまり、スレーブは書き込みもでき、マスターは読み取りもできますが、通常はこれを行いません。 [関連する推奨事項:mysql ビデオ チュートリアル ]
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 install libaio-devel.x86_64## を実行してください。 #yum -y install umactl
4. 各データベースの構成ファイル my.cnf を作成します
1. 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. 各インスタンスが正常に正しく起動することを確認してから、マスター/スレーブ構成を実行します
2. インスタンスを閉じて、次の構成を追加します各インスタンスの 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.
#在/usr/local/mysql/bin目录下执行 多台从机‘|’分隔
./mysql -uroot -p -P3308|3309|3310 -h127.0.0.1
2 のスレーブ クライアントにログインする必要があります。スレーブ マシンのステータスを確認してください
#初始状态: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
更多编程相关知识,请访问:编程入门!!
以上がMysql5.7 でマスター/スレーブ レプリケーションを設定する方法について簡単に説明します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。