目录
原理介绍
环境说明
windows系统
两个mysql,一主一从(同一台机器安装多个mysql方法)
master:127.0.0.1:3306 root 123456
slave:127.0.0.1:3307 root 123456
配置步骤
-
配置master库的my.ini (linux下是my.cnf)
在[mysqld]下添加
log-bin=mysql-bin
server-id=1 (这个标识不能跟从库的一样)
-
创建同步账户(直接使用root也可以)
CREATE USER 'slave01'@'127.0.0.%' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE ON *.* TO 'slave01'@'127.0.0.%';
FLUSH PRIVILEGES;
-
查看主机状态
Show master status;
-
配置从库my.ini文件(linux下是my.cnf)
设置server-id=2 (不能个主库一样)
-
从库执行监视主机日志语句
change master to master_host='127.0.0.1',
master_user='slave01',
master_password='123456',
master_log_file='mysql-bin.000002', #这个要和上面的file对应
master_log_pos=430; #这个要和上面的Position对应
-
启动从机复制,查看从机状态
Start slave;
Show slave status\G;
实例测试
-
主库创建一张表
CREATE TABLE `test_1` (
`id` varchar(64) NOT NULL COMMENT '编号',
`name` varchar(100) DEFAULT NULL COMMENT '名称',
`sex` char(1) DEFAULT NULL COMMENT '性别',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='测试表';
查看从库
-
主库插入一条数据
INSERT INTO test_1 VALUES ('1111','张三','1');
查看从库
异常问题
-
Slave_IO_Running: NO
由于从库我是直接复制出来的,所以从库的uuid跟主库是一致的,因此会导致这个问题,只要修改从库auto.cnf(C:\ProgramData\MySQL\MySQL Server 5.7-s1\Data中)的uuid后,重启数据库。