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

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

官网下载地址https://dev.mysql.com/downloads/mysql/5.7.html#downloads

6244653-3b90b429092c7d89.png
这里使用的是5.7的免安装版本

1. 解压到指定目录

6244653-cdea773024178863.png
图片.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进入到主服务器目录

6244653-616c2461eb3ded23.png
图片.png

mysqld -install MySQL-Master

6244653-9ed74c06d1be2917.png
图片.png

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

mysqld -remove MySQL-Master

6244653-f38679fef6f8a334.png
图片.png

重新使用安装命令后提示


6244653-4cd7dabe3b1db8ed.png
图片.png

初始化mysql

mysqld --initialize --console

会在控制台打印信息

6244653-302cdfcc5dfc7c99.png
图片.png

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

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

net start mysql-master

6244653-60016cdbc0a6f9a0.png
图片.png

net stop mysql-master 为停止命令

4.登陆mysql配置

mysql -u root -pe8arpkE8iW)a

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

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


6244653-b62f349f7490f9fb.png
图片.png

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

ALTER USER USER() IDENTIFIED BY 'root';
use mysql;
update user set authentication_string=password("root123") where user="root";
flush privileges;

6244653-3e778bd94018942c.png
图片.png

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

  • mysqld -remove MySQL-Slave
  • mysqld -install MySQL-Slave
  • mysqld --initialize --console 得到临时密码k>i+0<kXi1e0
  • 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


6244653-48df39b96c3c86a7.png
图片.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

6244653-58ca7155623cd3fb.png
图片.png
6244653-8d58bb53394c71c6.png
图片.png

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

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

(可选)设置外部访问

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

6. 热备份

进入主库的bin目录
cd C:\software\mysql\mysql-master\bin
执行mysqladmin -uroot -proot flush-logs
会在目录中生产备份文件

6244653-9f02ac3c231a496d.png
图片.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为需要恢复的备份
备份脚本输入版本


6244653-adf90d3a7926f177.png
图片.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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值