windows mysql 热备_mysql在windows下的安装以及主从定时热备份与恢复备份

本文详细介绍了如何在Windows上安装MySQL并配置主从热备份,包括主从数据库的配置、用户授权、主从同步以及热备份和恢复的步骤,确保数据的安全性和实时性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先声明:主从复制版本一致!!!为了避免不同版本带来的错误

33da589f5bbf?utm_campaign=haruki

这里使用的是5.7的免安装版本

1. 解压到指定目录

33da589f5bbf?utm_campaign=haruki

图片.png

解压到指定目录并复制一份,分别更名为如图名称,方便后面做主从数据库配置

2.增加配置文件my.ini

重点说一下几个点

log_bin=master-bin

热备份一定要开启这个

主库配置

[mysqld]

# 服务端使用的字符集默认为8比特编码的latin1字符集,设置为utf8字符

character-set-server=utf8

# 创建新表时将使用的默认存储引擎

default-storage-engine=INNODB

# 设置mysql的安装目录

basedir = C:\\software\\mysql\\mysql-master

# 设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可,否则有可能

datadir = C:\\software\\mysql\\mysql-master\\data

# 设置3306端口

port = 3306

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

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

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

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

[mysql]

# 设置mysql客户端默认字符集

default-character-set=utf8

[client]

default-character-set=utf8

从库配置

# 服务端使用的字符集默认为8比特编码的latin1字符集,设置为utf8字符

character-set-server=utf8

# 创建新表时将使用的默认存储引擎

default-storage-engine=INNODB

# 设置mysql的安装目录

basedir = C:\\software\\mysql\\mysql-slave

# 设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可,否则有可能

datadir = C:\\software\\mysql\\mysql-slave\\data

# 设置3307端口

port = 3307

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

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

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

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

[mysql]

# 设置mysql客户端默认字符集

default-character-set=utf8

[client]

default-character-set=utf8

3. 安装mysql主从服务器

打开cmd进入到主服务器目录

33da589f5bbf?utm_campaign=haruki

图片.png

mysqld -install MySQL-Master

33da589f5bbf?utm_campaign=haruki

图片.png

如果之前安装过这里需要移除掉之前的服务(如果未安装过请跳过此步)

mysqld -remove MySQL-Master

33da589f5bbf?utm_campaign=haruki

图片.png

重新使用安装命令后提示

33da589f5bbf?utm_campaign=haruki

图片.png

初始化mysql

mysqld --initialize --console

会在控制台打印信息

33da589f5bbf?utm_campaign=haruki

图片.png

下面的临时密码我们需要拷贝一下,第一次登陆需要,如果使用mysqId --initalize会输出一个.err后缀的文件到data目录中,临时密码去那里查看

初始化后,可以启动服务了

net start mysql-master

33da589f5bbf?utm_campaign=haruki

图片.png

net stop mysql-master 为停止命令

4.登陆mysql配置

mysql -u root -pe8arpkE8iW)a

记得登陆命令加上临时密码

登陆后会发现无法操作数据库修改密码

33da589f5bbf?utm_campaign=haruki

图片.png

执行下面指令修改初始密码

ALTER USER USER() IDENTIFIED BY 'root';

use mysql;

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

flush privileges;

33da589f5bbf?utm_campaign=haruki

图片.png

执行成功后数据库就安装密码设置好了。从数据库同理

mysqld -remove MySQL-Slave

mysqld -install MySQL-Slave

mysqld --initialize --console 得到临时密码k>i+0

net start mysql-slave

mysql -u root -P3307 -p 这里注意从数据库必须加端口号连接

ALTER USER USER() IDENTIFIED BY 'root';

use mysql;

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

flush privileges;

5.数据库主从配置

登录主数据库

show master status;

记录下面的file 和position

33da589f5bbf?utm_campaign=haruki

图片.png

主库创建一个用户用于和从库连接,并且授权

create user slave;

grant replication slave on *.* to 'slave'@'127.0.0.1'identified by 'root123';

flush privileges;

然后去登录从数据库

mysql -uroot -P3307 -proot123 记得一定要加端口号登录从库

把主库和从库连接起来

change master to master_host='127.0.0.1',master_port=3306,master_user='slave',master_password='root123',master_log_file='master-bin.000002',master_log_pos=1289;

然后执行

start slave; 关闭是stop slave

查看 slave 的状态

show slave status \G

33da589f5bbf?utm_campaign=haruki

图片.png

33da589f5bbf?utm_campaign=haruki

图片.png

这两个都是yes表示启动成功了

我们去主数据库增加表更新数据在从数据库中就能看到更新了

(可选)设置外部访问

update user set host = ‘%’ where user =’root’;

6. 热备份

进入主库的bin目录

cd C:\software\mysql\mysql-master\bin

执行mysqladmin -uroot -proot flush-logs

会在目录中生产备份文件

33da589f5bbf?utm_campaign=haruki

图片.png

定义bat脚本

@echo off

set INTERVAL= 60

:Again

echo 定时任务开启,任意键立即触发

cd C:\software\mysql\mysql-master\bin

mysqladmin -uroot -proot123 flush-logs

timeout %INTERVAL%

goto Again

set INTERVAL设置循环时间,

或者删除循环直接放入windows计划任务中

@echo off

echo 执行脚本

cd C:\software\mysql\mysql-master\bin

mysqladmin -uroot -proot123 flush-logs

恢复备份

进入data目录下

mysqlbinlog --no-defaults --set-charset=utf8 C:\software\mysql\mysql-master\data\master-bin.000004 | mysql -uroot -proot123

--no-defaults --set-charset=utf8解决了执行导致的编码问题

恢复备份脚本bat文件

例如 master-bin.000006为需要恢复的备份

备份脚本输入版本

33da589f5bbf?utm_campaign=haruki

图片.png

@echo off

set/p a1=请输入恢复文件并按回车:

cd C:\software\mysql\mysql-master\bin

mysqlbinlog --no-defaults --set-charset=utf8 C:\software\mysql\mysql-master\data\%a1% | mysql -uroot -proot123

Pause

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值