MySQL主从搭建笔记
前言:环境介绍
操作系统:windows10,64,;
MySQL版本:解压方式安装的MySQL8.0.20
一、配置主从的mysql配置文件
1.my.ini配置:
master:
#主从--master设置
server-id=1
log-bin=mysql-bin
binlog_format=row
master配置完后,重启master的MySQL服务。
slave:
#主从--slave设置
server-id=2
log-bin=mysql-bin
binlog_format=row
master_info_repository=TABLE
relay_log_info_repository=TABLE
log_slave_updates=on
relay_log_recovery=1
slave配置完后,重启slave的MySQL服务。
二、在主库创建主从复制的mysql账号
CREATE USER mysqlsync@'%' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE ON *.* TO mysqlsync@'%';
三、备份主库指定数据库
mysqldump -P3306 -uroot -p123456 --single-transaction --master-data=2 --databases test>d:/test.sql
--single-transaction:是为了得到一个一致性备份,在到处数据之前开启一个事物,由数据库保证单次导出数据的一致性,此时针对InnoDB表的所有读写操作均不会被阻塞。
--master-data=2:让备份出来的文件中备份这一时刻的binlog文件和position号
四、在从库上恢复主库的备份
source d:/test.sql;
五、启动从库服务
在从库上运行:
CHANGE MASTER to master_host='127.0.0.1',master_user='mysqlsync',master_password='123456',master_log_file='binlog.000003',master_log_pos=2332;
注意,务必和备份文件中两个参数:MASTER_LOG_FILE、MASTER_LOG_POS 一致。
接着运行
start slave;
show slave status\G
确保以下两项均为Yes,说明主从服务正常:
Slave_IO_Running:Yes
Slave_SQL_Running: Yes
六、测试
在主库上建表,并插入数据
create database test;
use test;
CREATE TABLE `stu` (
`id` bigint NOT NULL AUTO_INCREMENT,
`code` varchar(30) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=In
INSERT INTO test.stu (code) VALUES
('001'),
('002');
到从库看一下,是否有了?