win11下mysql数据库设置主从

一、主从版本选择

MySQL 官方建议主库的版本应等于或低于从库版本:

  • MySQL 5.7 主库 → MySQL 8.0 从库 ✅ 允许
  • MySQL 8.0 主库 → MySQL 5.7 从库 ❌ 不支持

二、主库设置

1、找到mysql是配置文件my.ini,一般这个文件都是在Data的安装目录下,比如C:\ProgramData\MySQL\MySQL Server 8.0,有的电脑这个ProgramData文件夹是隐藏起来的。

2、打开my.ini文件,查找server-id,这里默认都是1,主从设置的时候,需要把这个设置成唯一的,如果都是同一个网段,建议使用ip地址的最后的那段

3、确定一下log-bin参数是否存在,比如5.7版本的就没有,如果没有,补上,这个参数是日志的名称前缀,格式是:计算机名称-bin。添加binlog-format参数,binlog-format = ROW是MySQL二进制日志的基于行的复制格式。当设置为ROW格式时,MySQL不会记录执行的SQL语句本身,而是记录每行数据的具体变更内容。

4、打开cmd命令行,重启一下mysql,这样配置才生效,需要使用管理员权限,否则有报错

MySQL80 ​ 是 MySQL 8.0 版本在 Windows 系统中安装时使用的**默认服务名称,**执行以下命令,查看下服务名称

复制代码
sc queryex type= service state= all | findstr /i "mysql"

停止mysql

复制代码
net stop MySQL80

启动mysql

复制代码
net start MySQL80

如果my.ini配置文件修改错误,这里是启动失败的

5、使用navicat连接你的数据库

6、查看server_id是否配置成功

复制代码
SHOW VARIABLES LIKE 'server_id'

7、查看日志是否启动,注意这两个参数,后边从数据库配置的时候需要使用,这时候不要对数据库进行写入和修改,否则后边同步的时候,会报错

复制代码
SHOW MASTER STATUS;

8、使用navicat连接数据库,然后把主库的数据库备份一下。在需要备份的数据库上右键,转储SQL文件->结构和数据。

三、从库设置

1、把上一步保存出来的数据文件复制到从库电脑上。先建立一个数据库名称,如果你多个主数据库的数据库名称都不一样,就可以设置一样的,如果是主库的数据库名称一样,那么就可以自己选一个数据库名称,比如db1,然后选择数据文件,还原一下数据库。

3、mysql8.0默认是有四个通道的,可以执行以下命令确认一下

复制代码
SHOW VARIABLES LIKE 'slave_parallel_workers';

4、执行以下命令,这里的ip,还有账号密码,按照实际的来填写,这里的账号,注意他的权限,是要可以远程访问的。MASTER_LOG_FILE就是主库设置第七步那里查询出来的,就是当前使用的日志文件名称,MASTER_LOG_POS就是位置,要跟主库的对应的上。FOR CHANNEL 'master1';就是把这个数据库放到master1这个通道上。

复制代码
CHANGE MASTER TO
  MASTER_HOST='192.168.0.57',
  MASTER_USER='admin',
  MASTER_PASSWORD='admin',
  MASTER_LOG_FILE='DESKTOP-LRVOV97-bin.000010',
  MASTER_LOG_POS=197
FOR CHANNEL 'master1';

5、如果你有多个主库,而且主库的数据库名称都一致,那么你还需要设置一下数据库名称映射。这里的test就是主库的数据库名称,db1是我们从库上设置的数据库名称,master1是通道1

复制代码
CHANGE REPLICATION FILTER REPLICATE_REWRITE_DB = ((test, db1)) FOR CHANNEL 'master1';

6、执行下以下命令,查看下从库的状态

复制代码
SHOW SLAVE STATUS;

我这里设置了两个从库,所以我这里有两个信息。可以仔细看下这里有很多参数。比如以上这个图,就可以看到主库的ip地址,登录的账号名称,端口号,以及日志文件和位置

这里有两个重要参数,Slave_IO_Running和Slave_SQL_Running,这两个字段都要是Yes,否则就是有设置不正确的,无法进行同步。

这里有两个参数,前边的是我们之前做的数据库名称映射,后边参数是通道

7、启动一下从库

复制代码
START SLAVE;

8、修改主库,从库上的数据会同步变更

四、命令

1、停止通道1的复制线程

复制代码
STOP SLAVE FOR CHANNEL 'master1';

2、启动通道1的复制线程

复制代码
START SLAVE FOR CHANNEL 'master1';

3、重置通道配置(清空这个配置)

复制代码
RESET SLAVE ALL FOR CHANNEL 'master1'

4、显示master1通道状态

复制代码
SHOW SLAVE STATUS FOR CHANNEL 'master1';
相关推荐
qq_3344668615 小时前
U9补丁同步的时候报错
数据库
施嘉伟15 小时前
KSQL Developer 测试记录
数据库·kingbase
谱度众合15 小时前
【蛋白互作研究】邻近标记PL-MS实验指南:如何精准获取目标蛋白的基因序列?
数据库·科技·蛋白质组学·药物靶点·生物科研
麦聪聊数据15 小时前
生成测试数据(三):从建表到 CRUD 的冷启动
数据库·sql
Awkwardx15 小时前
MySQL数据库—MySQL复合查询
数据库·mysql
2301_8002561116 小时前
R-Tree创建与遍历,R-Tree在4类空间查询中的应用,实现4类空间查询的各类算法[第8章]
数据库·算法·机器学习·postgresql·r-tree
十月南城16 小时前
分布式ID选型——雪花、号段、数据库自增与时钟回拨的风险控制
数据库·分布式
老邓计算机毕设16 小时前
SSM校园快递代取平台32618(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·ssm 框架·校园快递代取平台
论迹16 小时前
【Redis】-- 单线程模型
数据库·redis·缓存
悦数图数据库16 小时前
BOSS 直聘基于悦数图数据库构建智能根因定位平台的实践
数据库·人工智能