Windows10 Mysql 主从搭建

一、mysql 安装

1.1 下载地址
https://downloads.mysql.com/archives/community/
我下的载
在这里插入图片描述
1.2 解压之后分别命名
在这里插入图片描述
1.3 解压之后没有 my.ini 和 data 需要创建 my.ini并配置 data 在初始化时自动会创建

二、主库搭建

2.1 修改配置 my.ini

[client]
port=3310
default-character-set=utf8

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8 

[mysqld]
#设置3310端口
port = 3310

# 设置mysql的安装目录
basedir=D:\Apache\mysql\mysql-master

# 设置mysql数据库的数据的存放目录
datadir=D:\Apache\mysql\mysql-master\data

# 允许最大连接数
max_connections=200

# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8

# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

#开启查询缓存
explicit_defaults_for_timestamp=true

#免密登录
skip-grant-tables

# 主库和从库需要不一致,分别配一个唯一的ID编号
server_id=1

# 二进制文件存放路径,存放在根目录data文件夹下
log_bin=master-bin   

# 需要复制的库,多个库用逗号隔开,如果此项不配置所有主库都参与复制,这里要是配置了,同时也要在Slave(也就是你的从库) 上设定
# binlog-do-db=test

# 不需要复制的库,和上项同理
# binlog-ignore-db=mysql

2.2 cmd 以管理员身份 进入主库的bin目录中,如下图:
在这里插入图片描述
2.3 初始化 进入到bin 目录下

mysqld --initialize

2.4 执行命令:其中 mysql-master 为服务的名字

mysqld --install mysql-master --defaults-file="D:\Apache\mysql\mysql-master\my.ini"

出现以下提示,表示服务安装成功

D:\Apache\mysql\mysql-master\bin>mysqld --install mysql-master --defaults-file="D:\Apache\mysql\mysql-master\my.ini"
Service successfully installed.

启动mysql服务器
执行命令:
启动命令 net start mysql-master
停止命令 net stop mysql-master

删除服务 sc delete 服务名
出现以下提示信息表示主库启动成功在这里插入图片描述
2.5.初始用户和密码

登陆数据库
D:\Apache\mysql\mysql-slave-1\bin>mysql -u root -p

#将数据库切换至mysql库
mysql> USE mysql;

#修改密码
mysql> update user set authentication_string=PASSWORD('123456') where user='root';

#刷新MySQL权限相关的表
mysql> flush privileges;

mysql> exit;

三、从库搭建

和主库配置基本一样 但是注意端口 和 server_id
3.1.修改配置 my.ini

[client]
port=3320
default-character-set=utf8 

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8 

[mysqld]
#设置3310端口
port = 3320

# 二进制文件存放路径,存放在根目录data文件夹下
#log_bin=master-bin   

# 设置mysql的安装目录
basedir=D:\Apache\mysql\mysql-slave-1

# 设置mysql数据库的数据的存放目录
datadir=D:\Apache\mysql\mysql-slave-1\data

# 允许最大连接数
max_connections=200

# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8

# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

#开启查询缓存
explicit_defaults_for_timestamp=true

#免密登录
skip-grant-tables

# 主库和从库需要不一致,分别配一个唯一的ID编号
server_id=2
relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin

3.2 cmd 以管理员身份 进入主库的bin目录中,如下图:
在这里插入图片描述
3.3 初始化 进入到bin 目录下

mysqld --initialize

3.4 执行命令:其中 mysql-slave-1 为服务的名字

mysqld --install mysql-slave-1 --defaults-file="D:\Apache\mysql\mysql-slave-1\my.ini"

出现以下提示,表示服务安装成功

D:\Apache\mysql\mysql-slave-1\bin>mysqld --install mysql-slave-1 --defaults-file="D:\Apache\mysql\mysql-slave-1\my.ini"
Service successfully installed.

启动mysql服务器
执行命令:
启动命令 net start mysql-slave-1
停止命令 net stop mysql-slave-1

删除服务 sc delete 服务名
出现以下提示信息表示主库启动成功
在这里插入图片描述
3.5 初始用户和密码

登陆数据库
D:\Apache\mysql\mysql-slave-1\bin>mysql -u root -p

#将数据库切换至mysql库
mysql> USE mysql;

#修改密码
mysql> update user set authentication_string=PASSWORD('123456') where user='root';

#刷新MySQL权限相关的表
mysql> flush privileges;

mysql> exit;

3.6 主从就搭建完了从任务管理器中查看
在这里插入图片描述

四、关联主库(master)与从库(slave)

面我们已经把master和slave相关配置文件都已添加,并分别启动了master与slave,现在我们分别登录到master和slave的mysql中

4.1 master 的mysql 执行命令 show master status查看master的状态
在这里插入图片描述
4.2 slave 的mysql 执行命令 show slave status查看slave的状态
在这里插入图片描述
我们可以发现 ,master的状态下,生成了一个二进制的日志文件,而slave下是空的,所以我们现在就要把主库与从库关联起来。只需要让从库(slave)知道主库(master)的地址就可以了。

4.3 主库操作
首先我们需要在主库(master)中创建一个用户用于与从库同步的用户名和密码(这里我创建一个test用户,密码为mysql),并给test用户授权,以用于主库操作从库。
在这里插入图片描述
相关命令:

create user test;
grant replication slave on *.* to 'test'@'127.0.0.1'identified by '123456';
flush privileges;

4.4 从库操作
首先执行

change master to master_host='127.0.0.1',master_port=3310,master_user='test',master_password='123456',master_log_file='master-bin.000001',master_log_pos=0;

start slave 开启主从同步
在这里插入图片描述
然后执行命令查看 slave的状态

show slave status \G;

在这里插入图片描述
至此,主从跟踪已经开启,并全部配置完成

五、验证主从同步

在masert 中创建一个数据库 user ,看一下从库的变化
在这里插入图片描述
在这里插入图片描述
本文参考自其他博客:
1.https://www.cnblogs.com/naruto123/p/8138708.html
2.https://www.cnblogs.com/opsprobe/p/10904377.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值