以下是详细讲解“MYSQL5.6.33数据库主从(Master/Slave)同步安装与配置详解(Master-Linux Slave-windows7)”的完整攻略。
概述
MySQL主从复制是一种基于二进制日志的复制方式,通过主库将产生的二进制日志传输到从库,在从库上重新执行来实现数据同步。这种方式可以减轻主库的负担并提高可用性。
环境要求
- MySQL5.6.33主库(Linux)
- MySQL5.6.33从库(Windows7)
步骤
主库配置
- 修改my.cnf配置文件,使二进制日志文件名称以及日志格式满足主从复制要求
# example.cnf
server-id=1
log-bin=master-bin
binlog-format=row
- 创建主库复制账户并授权
mysql> CREATE USER 'slave'@'%' IDENTIFIED BY 'slave';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%';
mysql> flush privileges;
- 查看主库状态,记录File和Position等信息
mysql> SHOW MASTER STATUS;
从库配置
- 修改my.ini配置文件,使其满足主从复制要求
# example.ini
server-id=2
relay-log=slave-relay-bin
log-bin=slave-bin
binlog-format=row
- 配置从库同步主库
mysql> CHANGE MASTER TO
MASTER_HOST='192.168.1.1',
MASTER_USER='slave', MASTER_PASSWORD='slave',
MASTER_LOG_FILE='master-bin.000001',
MASTER_LOG_POS=4;
- 启动从库复制
mysql> START SLAVE;
- 查看从库状态
mysql> SHOW SLAVE STATUS\G
示例说明
示例一:主库端创建用户名为test的表并添加一条记录,从库自动同步
- 在主库创建test表,并添加一条记录
CREATE DATABASE db_test;
USE db_test;
CREATE TABLE test (id INT, col1 VARCHAR(20));
INSERT INTO test VALUES (1, 'test_record_1');
- 查看主库状态信息,记录File和Position
SHOW MASTER STATUS;
- 在从库查看数据库信息
SHOW DATABASES;
可以发现db_test没有同步到从库
- 在从库启动复制
START SLAVE;
- 在从库查看状态信息,确保复制正常
SHOW SLAVE STATUS\G
- 在主库添加一条记录
INSERT INTO test VALUES (2, 'test_record_2');
- 在从库查看测试表内容
USE db_test;
SELECT * FROM test;
可以看到,test记录已经被同步到从库
示例二:删除子表,主库从库均能同步删除操作
- 为了测试方便,我们在主库中创建一个有子表的表,然后在从库中查看子表是否已经被同步
CREATE TABLE test2 (id INT, col1 VARCHAR(20));
CREATE TABLE test2_sub (id INT, col1 VARCHAR(20));
INSERT INTO test2 VALUES (1, 'test_record_1');
SELECT * FROM test2_sub;
- 在从库查看子表,确保已经同步
USE db_test;
SHOW TABLES;
- 在主库删除子表
DROP TABLE test2_sub;
- 在从库查看子表,发现同步已经生效
USE db_test;
SHOW TABLES;
可以看到test2_sub表已经不再存在。
通过以上示例可以看到,主从复制可以有效的实现数据的同步,大大提高了系统的可用性和稳定性。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MYSQL5.6.33数据库主从(Master/Slave)同步安装与配置详解(Master-Linux Slave-windows7) - Python技术站