【MySql】数据库的备份与恢复

前言

对与数据库的备份与恢复该怎么去做呢?

Linux下对于文件或目录的备份,直接拷贝一份,留着备用,对于备份,比较简单的做法会就是直接打包拷贝一下,但是,如果需要恢复数据时,你可能会发现更多的问题,如受到版本的影响

不同版本的数据库对于命令,可以增加删除查找修改,但是对于数据库很难rename重命名,可能受版本影响,对于数据库的重命名,有一点不好:当你在操作数据库的时候别人却在修改。

MySql不提供拷贝或直接对文件夹重命名,而且我们也不推荐这么去做;我们比较推荐的是使用mysql的备份工具。

备份mysqldump

我们需要用到的工具是mysqldump

mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径

举个例子,把test1数据库备份到到/home/hwc/workspace/test1.sql中去,现在我们当前的路径是/home/hwc/workspace

image-20230606195627224

此时vim打开test1.sql,我们会发现,备份的不仅仅只是数据,还有把历史上所有有效的操作都备份起来了。

也就是说 test1.sql 文件里的内容,其实把我们整个创建数据库,建表,导入数据的语句都装载这个文件中。

现在我们在把数据库test1给删除drop掉:

image-20230606200319093

如何进行还原👇

还原source

source /home/hwc/workspace/test1.sql;

采用source命令,后面加上要还原的文件路径,此时就直接将历史对应的sql命令全部在新的sql执行一次:

image-20230606200817712

备份不是只备份了数据,操作也备份了:

此时查看数据库show databases;

image-20230606201103420

先使用数据库test1:use test1;查看test1数据库中的表person:

image-20230606201143587

查看到对于表person已经还原

注意事项

如果备份的不是整个数据库,而是其中的一张表,怎么做?

指明数据库后的表即可:无需带上-B选项

 mysqldump -u root -p 数据库名 表名1 表名2 > 数据库存放路径

如备份test1数据库中的表person:

image-20230606204715909

同时备份多个数据库:

mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径

如果备份一个数据库时,没有带上-B参数, 在恢复数据库时,需要先创建空数据库,然后使用数据库,再使用source来还原

-B的意思:在备份文件test1.sql中是有创建create database的语句:

image-20230606202118775

如果没有-B的选项,备份的数据库只会把数据库的所有表信息,数据信息备份出来, 而数据库的名称则需要自己创建出来

所以要备份的话,只需要把表备份一下,还原的时候不要-B,直接source一下即可,创建的时候简单的创建,备份的时候直接不带-B把表名带上。

查看连接情况

如果数据库很卡,可以查一下当前有什么人在使用数据库,也就是查看连接情况:

show processlist

image-20230606203311718

可以告诉我们当前有哪些用户连接到我们的MySQL,如果查出某个用户不是你正常登陆的,很有可能你的数据库被人入侵了。以后大家发现自己数据库比较慢时,可以用这个指令来查看数据库连接情况

  • 22
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

平凡的人1

佬的鼓励是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值