windows下实现mysql8的主从复制

news/2024/7/7 19:01:46

1、下载mysql8的安装包

MySQL :: Download MySQL Community Server

2、放到指定目录进行解压,更改名称为mysql-8.1.0-winx64-master,并复制一份作为从数据库

3、在bin目录下创建一个my.ini文件

添加如下内容

[mysqld]
basedir="D:/soft/mysql/mysql-8.1.0-winx64-master"
datadir="D:/soft/mysql/mysql-8.1.0-winx64-master/data"
socket="D:/soft/mysql/mysql-8.1.0-winx64-master/mysql.sock"
log-bin=mysql-bin
server-id=1
port=3306
# 设置需要同步的数据库
binlog-do-db=mydb
# 屏蔽系统库同步
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=preformance_schema

4、使用管理员打开cmd并使用如下命令初始化数据库,此时会在安装包目录下创建data目录

mysqld --initialize-insecure

5、注册服务mysql-master

mysqld install mysql-master --defaults-file="D:\soft\mysql\mysql-8.1.0-winx64-master\bin\my.ini" 

6、启动服务,可以使用如下命令或者在服务中重启

net stop mysql-master

net start mysql-master

6、设置主库root用户密码
mysqladmin -u root -password 12345678;

或者也可以在进入mysql后进行密码的修改

mysql -uroot -P3306;

use mysql;

ALTER user 'root'@'localhost' IDENTIFIED BY '12345678'

7、进行navicat配置主库连接

8、创建用于同步的账号slave,设置过期策略,修改服务器权限

9、使用如下命令查找File文件是否存在,是同步时会使用的binlog文件,记住File及Position的值

show master status;

10、配置从数据库,在拷贝的mysql-8.1.0-winx64-slave的bin路径下添加从库的my.ini文件并进行配置

[client]
port=3307
socket="D:/soft/mysql/mysql-8.1.0-winx64-slave/mysql.sock"
[mysqld]
basedir="D:/soft/mysql/mysql-8.1.0-winx64-slave"
datadir="D:/soft/mysql/mysql-8.1.0-winx64-slave/data"
socket="D:/soft/mysql/mysql-8.1.0-winx64-slave/mysql.sock"
port=3307
server-id=2
#skip-grant-tables
log-bin=mysql-bin

# 设置需要同步的数据库表
replicate_wild_do_table=mydb.%
# 屏蔽系统库同步
replicate_wild_ignore_table=mysql.%
# 启用中继日志
relay-log=mysql-relay
# 将从服务器设置为只读
read_only=1

# 要进行主从复制的数据库名
replicate-do-db=mydb
# 不进行主从复制的数据库名
replicate-ignore-db=mysql
# 记录从库更新,允许链式复制(A-B-C),当该从库作为其他库的主库时,需要添加该参数
log-slave-updates

11、以管理员权限打开cmd控制台,进行相应的操作

mysqld.exe --initialize-insecure --user=mysql

mysqld install mysql-slave --defaults-file="D:\soft\mysql\mysql-8.1.0-winx64-slave\bin\my.ini"

net start mysql-slave

12、登录从数据库,进行root用户密码修改,开启远程访问

mysql -uroot -P3307

use mysql;

ALTER user 'root'@'localhost' IDENTIFIED BY 'xtf******';

# 开启远程访问,不开启通过Navicat远程连接会报错Access denied for user

update user set host='%' where user='root';

FLUSH PRIVILEGES;

13、重启服务

net stop mysql-slave

net start mysql-slave

14、在navicat中配置同步

stop slave;
change master to master_host='127.0.0.1',master_port=3306,master_user='slave',master_password='123456',master_log_file='mysql-bin.000005',master_log_pos=569;
start slave;

show slave status;

# 如上参数

master_host  主库的ip地址

master_port   主库的端口

master_user  同步账号

master_password  同步账号的密码

master_log_file    开始同步的日志文件要与上边show master status的File一样

master_log_pos   开始同步的日志的开始位置

15、也可以在命令行中使用命令启动链路及查看链路

stop slave;

start slave;

show slave status \G;

16、验证,在主库中进行表内容的创建,从库也会进行相应操作

主库进行数据添加

从库出现相应操作


http://lihuaxi.xjx100.cn/news/1572905.html

相关文章

软件定义网络-OpenvSwitch

软件定义网络(SDN)。它主要有以下三个特点: 控制与转发分离:转发平面就是一个个虚拟或者物理的网络设备,就像小区里面的一条条路。控制平面就是统一的控制中心,就像小区物业的监控室。它们原来是一起的&…

代码随想录 Day-44|#70 爬楼梯(进阶)|#322 零钱兑换|#279 完全平方数

清单 ● 70. 爬楼梯 (进阶) ● 322. 零钱兑换 ● 279.完全平方数 LeetCode #70 爬梯子(进阶) 1. 题目 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 2. 思路 类似于…

分布式算法相关,使用Redis落地解决1-2亿条数据缓存

面试题:1~2亿数据需要缓存,请问如何设计个存储案例 回答:单机单台100%不可能,肯定是分布式存储,用redis如何落地? 一般业界有三种解决方案: 哈希取余分区 2亿条记录就是2亿个k,v&…

Vue3+ts实现简单版本modal

Vue3ts实现简单版本modal 项目中要求做一个询问弹框,有点类似ant-design-vue中的modal通过API调用的那种效果。虽然使用的ui库arco-design-vue中的modal也能满足我的需求,但是我懒得改样式,索性自己写一个阉割版的好了。实现的这个modal只支持…

Android开发之状态栏的设置

Android页面开发通常是根据UI设计进行,真机会遇到顶部状态栏和页面背景色或背景图片不协调的情况,这时候需要对状态栏进行设置。默认状态栏是有固定高度和背景色的,基本上我们需要将状态栏背景色设置透明并且图标能够在页面显示,下…

MyBatis-Plus通用Service快速实现赠三改查[MyBatis-Plus系列] - 第489篇

历史文章(文章累计480) 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 《国内最全的Spring Boot系列之三》 《国内最全的Spring Boot系列之四》 《国内最全的Spring Boot系列之五》 《国内最全的Spring Boot系列之六》 M…

centos7 装机遇到的问题

centos7 U盘启动装机 设置完启动项后重启 在菜单界面选择install centos7 按e编辑启动项,修改成如下 --> 之所以这么改是u盘的LABEL超过长度了只能显示到x8这里,nomodeset 是disable 视频驱动比如gpu 开始安装后如果选择的硬盘没有多余的空间了会提…

四个方面来带大家学习数据分析,数据分析精通不要太简单

下面分别从这四个方面来带大家学习数据分析: 第一,做数据分析要精通Python吗?第二,数据分析流程是什么?学什么?第三,如何培养数据分析思维?第四,数据分析书籍推荐 一、…