- 本文讲解的是在windows系统单机中实现MySQL的主从复制。
一、预备工作
1.想要实现主从复制需要提前准备一个mysql,我这里准备的是mysql8.0.31版本。还没有安装MySQL的小伙伴可以根据以下安装视频学习包教包会。5.7或者8.0都可以(建议8.0以上)
B站:www.bilibili.com/video/BV1EJ…
2.安装一个MySQL客户端工具(这里推荐SQLyog工具,百度查询安装)
3.前提准备完成,当前应当具备以下几个条件:
(1) MySQL服务启动成功 (2) SQLyog可以连接到MySQL
二、开始配置
1.配置文件修改
- 打开my.ini
- 如果你是看视频安装的MySQL,这一段配置信息是没有的,添加上去,保存配置信息。(其中的需要同步的数据库配置需要改为你自己想要同步的数据库,mortise_form是我的需要同步数据库名称)
log-bin=mysql-bin
server-id= 1
#设置需要同步的数据库
binlog-do-db=mortise_form
#屏蔽系统库同步
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
- 删除MySQL的bin目录下的auto.cnf文件(我的删除了取一张网络图解释 )
2.复制MySQL文件夹
- 直接复制mysql-8.0.31-winx64文件夹到同目录下名称可以尾缀加一个slave加以区分
3.从表my.ini修改
- 注意红框中的内容变动
log-bin=mysql-bin
#需要改成与主表不相同的id
server-id= 3
#需要同步的名称
replicate_wild_do_table=mortise_form.%
replicate_wild_ignore_table=mysql.%
replicate_wild_ignore_table=information_schema.%
replicate_wild_ignore_table=performance_schema.%
# 设置3308端口
port=3308
# 设置mysql的安装目录
basedir=D:\\Environment\\mysql-8.0.31-winx64-slave
# 设置mysql数据库的存放目录
datadir=D:\\Environment\\mysql-8.0.31-winx64-slave\\data
4.cmd操作
- 依次输入以下命令(其中的mysqlc2是自己取的从MySQL服务名称,也可叫其他名字,不要叫MySQL就可以)
mysqld.exe --install mysqlc2 --defaults-file=D:\Environment\mysql-8.0.31-winx64-slave\my.ini
net start mysqlc2
- 正常应该和我一样
sqlyog操作
- 连接主数据库,一条条执行以下命令!
#创建用户
CREATE USER 'slave'@'localhost' IDENTIFIED BY '123456';
#授权用户
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'localhost';
#刷新权限
FLUSH PRIVILEGES;
show master status;
- 执行成功注意保存这两条内容
- 连接从表,注意这是一条命令,全部选中执行即可!
#master_host 主数据库地址
CHANGE MASTER TO master_host ='127.0.0.1',
#上一步中主数据库创建的从库用户
master_user ='slave',
#上一步中主数据库创建的从库密码
master_password ='123456',
#上一步中保存的file
master_log_file ='txmysql-bin.000004',
#上一步中保存的position
master_log_pos = 567;
- 在从表执行启动命令
start slave
- 使用命令show slave status查看从库状态
show slave status