win mysql主从_Windows环境下搭建Mysql主从

本文详细介绍了在Windows系统下如何搭建MySQL主从复制环境。包括主从库的版本选择、数据库安装、配置文件设置、用户授权、主从关联以及主从同步验证等步骤,确保数据实时一致。
摘要由CSDN通过智能技术生成

1. 环境

参数

说明

主库所在的操作系统

win7

主库的版本

mysql-5.6.46-winx64

主库的ip地址

127.0.0.1

主库的端口

3306

参数

说明

从库所在的操作系统

win7

从库的版本

mysql-5.6.46-winx64

从库的ip地址

127.0.0.1

从库的端口

3307

主库和从库版本可以一致也可以不一致,需要说明一点,如果两者版本不一致,一般主库的版本需要比从库的版本低,这样就可以避免由于版本问题,有些sql不能执行的问题。

2. 数据库安装

下载的是zip包的mysql 将其解压到本机即可

f199fcedffbaff56e5f4232e58563509.png

2.1 主库(master)的安装及配置

进入主库mysql-5.6.46-winx64目录中,在此目录中新建my.ini文件并添加一下配置。

[mysqld]

# 以下内容手动添加

[client]

port=3307

default-character-set=utf8

[mysqld]

#主库配置

server_id=1

log_bin=master-bin

log_bin-index=master-bin.index

# 跳过密码

skip-grant-tables

#端口

port=3306

character_set_server=utf8

#解压目录

basedir=D:\program\mysql-5.6.46-winx64

#解压目录下data目录

datadir=D:\program\mysql-5.6.46-winx64\data

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

[WinMySQLAdmin]

D:\program\mysql-5.6.46-winx64\bin\mysqld.exe

将里面的路径修改成你自己的主库路径

以管理员权限打开cmd

cd /d D:\program\mysql-5.6.46-winx64\bin

mysqld --install master --defaults-file="D:\program\mysql-5.6.46-winx64\my.ini"

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

f0a6dd0d6e6ecc12965dc5a08cc33080.png

将里面的路径修改成你自己的主库路径

其中的master为主库mysql的服务名称

删除master服务用sc delete master

启动主库的mysql服务器

net start master

net stop master 为停止命令

591f64d19b095a9d4539e1a2bfa1d10c.png

使用命令>mysql -uroot -P3306 -p登录master数据库(默认安装好的mysql的root用户是没有密码的)

06c8202c032ae61b0ffbe0ddb0417a84.png

登录上之后修改root用户的密码(这里修改成root)

执行命令

use mysql;

update user set password=password("root") where user="root";

flush privileges;

1c74a9daa0d8662f83b854829db57a3b.png

这样就设置好了root用户的密码了。(记得注销my.ini中的跳过密码配置,并重启master)

cdae112c3d8149b84c207ab94b1c3ce9.png

2.2 从库(slave)的安装与配置

进入主库D:\program\mysql-5.6.46-winx64-02目录中,在此目录中新建my.ini文件并添加一下配置。

[mysqld]

# 以下内容手动添加

[client]

port=3307

default-character-set=utf8

[mysqld]

#从库配置

server_id=2

relay-log-index=slave-relay-bin.index

relay-log=slave-relay-bin

# 跳过密码

skip-grant-tables

#端口

port=3307

character_set_server=utf8

#解压目录

basedir=D:\program\mysql-5.6.46-winx64-02

#解压目录下data目录

datadir=D:\program\mysql-5.6.46-winx64-02\data

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

[WinMySQLAdmin]

D:\program\mysql-5.6.46-winx64-02\bin\mysqld.exe

安装从库服务。

cd /d D:\program\mysql-5.6.46-winx64-02\bin

mysqld --install slave --defaults-file="D:\program\mysql-5.6.46-winx64-02\my.ini"

bb04000aad7a513a6a3f6784d6337775.png

启动从的mysql服务器

net start slave

1e4e8f2253fc337efd0671b8584cce1d.png

同样的登录从库(mysql -uroot -P3307 -p)

114124167269f2e3791f4d5e9d13122a.png

修改从库root用户的密码为root

use mysql;

update user set password=password("root") where user="root";

flush privileges;

9a164a9706f374856ea76ea91f8d6435.png

注销从库中的my.ini中的跳过密码配置,重启slave服务

b3b720147e38687fe4ebbddf27295fc1.png

至此,主、从数据库的安装及配置就完成了。

3. 关联主库(master)与从库(slave)

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

master的mysql 执行命令 show master status查看master的状态

slave的mysql 执行命令 show slave status\G查看slave的状态

47ae782c9a1d5e37d84e7c2576db9ac1.png

我们可以发现 ,master的状态下,生成了一个二进制的日志文件,而slave下是空的,所以我们现在就要把主库与从库关联起来。只需要让从库(slave)知道主库(master)的地址就可以了。

首先我们需要在主库(master)中创建一个用户用于与从库同步的用户名和密码(这里我创建一个test用户,密码为mysql),并给test用户授权,以用于主库操作从库。

create user test;

grant replication slave on *.* to '从库用户名(test)'@'从库主机地址(127.0.0.1)'identified by '密码(mysql)';

flush privileges;

6d9900f462186df5a9985ee4490019b5.png

现在我们切到从库(slave),把主库与从库联系起来。

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

d418122bb39f4aacd5a4d20fa7b054df.png

然后执行命令 start slave; 开启主从同步

61fa429437df0c596c7cf0b686e202c2.png

后执行命令查看 slave的状态

show slave status \G;

出现如下图,则开启主从跟踪成功

ba533cfabcf892136352f9872dcd2daf.png

4. 验证主从同步

我们进入master和slave并查看他们的数据库,如下图:

然后我们在主库中创建一个数据库user,看一下从库有没有变化。

805cbf4a391c6c9d812763dc0eb336de.png

至此,主从同步已配置完毕。

注意不要往从库中写数据,如果从库写入数据,master_log_pos是不会变化的,主库的信息没有发生变化,当主库又变化和从库一样的操作时就有可能会产生冲突,因此,只能在主库中写数据,从库只能读数据,当然主库也可以读数据。

5. 主从恢复(补充)

在主库上使用show master status获取master_log_file和master_log_pos

再在从库上执行如下命令

stop slave;

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

start slave;

注意修改 master_log_file和master_log_pos以及其他配置信息

在从库上执行查询show slave status\G状态

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值