Windows环境下配置MySQL主从复制详细教程

155 阅读2分钟
  • 本文讲解的是在windows系统单机中实现MySQL的主从复制。

一、预备工作

1.想要实现主从复制需要提前准备一个mysql,我这里准备的是mysql8.0.31版本。还没有安装MySQL的小伙伴可以根据以下安装视频学习包教包会。5.7或者8.0都可以(建议8.0以上)

B站:www.bilibili.com/video/BV1EJ…

2.安装一个MySQL客户端工具(这里推荐SQLyog工具,百度查询安装)

Snipaste_2023-02-24_23-18-29.png

3.前提准备完成,当前应当具备以下几个条件:

(1) MySQL服务启动成功 (2) SQLyog可以连接到MySQL

二、开始配置

1.配置文件修改

  • 打开my.ini 111.png
  • 如果你是看视频安装的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文件(我的删除了取一张网络图解释 )

5c8bf193936f4c0e891c52dcf9cd1761.png

2.复制MySQL文件夹

  • 直接复制mysql-8.0.31-winx64文件夹到同目录下名称可以尾缀加一个slave加以区分

Snipaste_2023-02-24_23-36-31.png

3.从表my.ini修改

  • 注意红框中的内容变动

Snipaste_2023-02-24_23-39-17.png

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
  • 正常应该和我一样

Snipaste_2023-02-24_23-43-55.png

sqlyog操作

  • 连接主数据库,一条条执行以下命令!
#创建用户
CREATE USER 'slave'@'localhost' IDENTIFIED BY '123456';
 
#授权用户
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'localhost';
 
 
#刷新权限
FLUSH PRIVILEGES;
 
show master status;
  • 执行成功注意保存这两条内容

375cf4290c8d478fbedbf36a7a15b4ae.png

  • 连接从表,注意这是一条命令,全部选中执行即可!

#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

27105d33943d421abf457a336be3b60f.png

OK!下面就可以尝试主表修改,查看从表更新情况啦!