【MySQL】Windows实现MySQL主从复制

1. 实现环境

MySQL8.0.27 + Window11 + Navicat Premium 12

  1. Navicat Premium 12只是为了便于主数据库与从数据库之间的关系可视化及指令访问,也可以不进行配置,而全程在cmd上完成配置。
  2. 这里建议使用 Navicat Premium 12去完成后续的主从配置,会比cmd更友好。在配置过程中如果使用cmd,会遇到不同MySQL版本支持的指令不同的情况,需要花费很多精力去调整命令语句。

2. 在Windows上安装两种MySQL服务并同时开启服务

(1)使用免安装版本MySQL8.0.27
MySQL免安装版本官网下载地址
打开解压文件所在位置,如果不存在my.ini文件,就新建一个配置文件my.ini。要在同一个windows上实现多个MySQL服务,需要调整其端口号,因此需要进行配置。
(2)安装主库
主库的my.ini配置文件如下:

[mysqld]
#设置主库端口,注意须是不被占用的端口号
port = 3305
#设置mysql的安装目录
basedir=D:\MySQL\mysql-8.0.27-winx64-master
#设置mysql数据的存储目录,如果该路径下不存在data文件夹,会在安装时自行创建
datadir=D:\MySQL\mysql-8.0.27-winx64-master\data
#二进制文件名称,注意这里的mysql-bin是自行命名,后续所有步骤都要与之对应
log-bin=mysql-bin
#设置服务器的id,要求各个服务器的id必须不一致
server-id = 1                     

接下来以管理员方式运行cmd,进入到D:\MySQL\mysql-8.0.27-winx64-master\bin路径下,进行主库安装,依次执行如下命令:

mysqld --initialize --console

mysqld --install mysql_master_3305

#也可以直接在“服务”中开启
net start mysql_master_3305

mysql -uroot -P3305 -p

alter user 'root'@'localhost' identified by '111111';

#可以删除服务的命令
net stop mysql_master_3305
mysqld remove mysql_master_3305

mysqld --initialize --console
在这里插入图片描述注意记录下localhost后面的密码字段便于后续登录。

mysqld --install mysql_master_3305
在这里插入图片描述

net start mysql_master_3305
在这里插入图片描述成功开启后,会显示“登录成功”。也可以Win+R输入regedit进入服务中进行查看。

mysql -uroot -P3305 -p
在这里插入图片描述

alter user ‘root’@‘localhost’ identified by ‘111111’;
在这里插入图片描述更改登录密码,同时该密码也应用于连接Navicat。

打开Navicat,新建连接,输入密码,测试连接后完成。
在这里插入图片描述
(3)安装从库
从库的my.ini配置文件如下:

[mysqld]
#设置主库端口,注意须是不被占用的端口号
port = 3308
#设置mysql的安装目录
basedir=D:\MySQL\mysql-8.0.27-winx64-slave
#设置mysql数据的存储目录,如果该路径下不存在data文件夹,会在安装时自行创建
datadir=D:\MySQL\mysql-8.0.27-winx64-slave\data
#二进制文件名称,注意这里的mysql-bin是自行命名,后续所有步骤都要与之对应
log-bin=mysql-bin
#设置服务器的id,要求各个服务器的id必须不一致
server-id = 2               

在进行安装前,这里需要修改bin中的mysql.exe和mysqld.exe的名称,并且将对应命令进行修改。
在这里插入图片描述
接下来进行如下命令

mysqld82 --initialize --console

mysqld82 --install mysql_master_3305

#也可以直接在“服务”中开启
net start mysql_master_3305

mysql82 -uroot -P3308 -p

alter user 'root'@'localhost' identified by '111111';

#可以删除服务的命令
net stop mysql_master_3305
mysqld82 remove mysql_master_3305

之后的所有操作如主库,保证两个MySQL服务都开启,然后在Navicat中同时连接两个服务:
在这里插入图片描述

3. 进行主从复制配置

在Navicat的主库中新建用户
在这里插入图片描述
完成如下设置
在这里插入图片描述
这里的主机输入%,表示可以接收所有IP的服务端访问,过期密码选择NEVER,在服务器权限中勾选File和Replication Slave,并保存。
在这里插入图片描述
在主库端输入查询语句:
在这里插入图片描述
记录这里的File名和Position,然后打开从库,输入语句(可以在cmd或在该软件中)

#在修改前
stop slave;
#注意检查对应信息
change master to master_host='localhost',
master_user='wotainanl',
master_password='111111',
master_port=3305,
master_log_file='mysql-bin.000002',
master_log_pos=3045;

start slave;

在这里插入图片描述
最后得到的结果
在这里插入图片描述
在这里插入图片描述在Slave_SQL_Running和Slave_IO_Running都显示yes,表示主从复制配置完成。

4.测试主从复制

登录入主库,输入

create database test;

在这里插入图片描述
然后登入从库,输入语句进行查询

show databases ;

在这里插入图片描述
看到有test库生成,证明主从复制完成。

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值