当前位置:首页 > 问答 > 正文

Mariadb备份数据库那些事儿,教你简单几步搞定数据安全问题

开始)

说到管理MariaDB数据库,备份绝对是头等大事,就跟我们平时给手机、电脑备份重要文件一个道理,你永远不知道明天和意外哪个先来,服务器硬盘可能会坏,机房可能出问题,甚至可能有人误操作把重要数据给删了,要是没备份,那可真叫天天不应,叫地地不灵了,所以今天,咱们就抛开那些让人头疼的专业术语,用最直白的话,聊聊怎么给MariaDB数据库做备份,简单几步,让你睡个安稳觉。

咱们得知道一个最核心、最简单的备份方法,就是使用MariaDB自带的一个命令行工具,叫做mysqldump,你可以把它想象成一个非常专业的“复制粘贴”工具,它能把你数据库里的所有内容(比如有哪些表、表里存了什么数据)生成一个巨大的文本文件,这个文件里其实就是一堆SQL语句,万一数据库出问题了,你只要拿着这个文件,就能像执行剧本一样,把数据库原封不动地“重建”出来。

具体怎么用呢?其实命令很简单,你打开你的服务器命令行(比如Linux的终端或者Windows的命令提示符),然后输入类似下面这样的命令:

mysqldump -u 你的用户名 -p 要备份的数据库名字 > 备份文件保存的路径.sql

我来拆解一下这个命令:

  • -u 你的用户名:就是告诉你用哪个账号去连接数据库,通常是用有权限的root用户。
  • -p:意思是接下来会让你输入这个用户对应的密码,这样写是为了安全,不会在命令历史里留下你的密码痕迹。
  • 要备份的数据库名字:比如你的网站数据库叫“my_website”,这里就填它。
  • >:这个符号是重定向,意思是把mysqldump命令产生的结果,不显示在屏幕上,而是扔到后面指定的文件里去。
  • 备份文件保存的路径.sql:就是你希望备份文件放在哪里,叫什么名字,通常以.sql一看就知道是数据库备份。

举个例子,我想备份一个叫“shop”的数据库,用root账号,想把备份文件放在/home目录下,取名“shop_backup_20231027.sql”,那么命令就是:

mysqldump -u root -p shop > /home/shop_backup_20231027.sql

回车之后,输入密码,如果命令行没报错, quietly地回到提示符状态,那基本就说明备份成功了,你可以去/home目录下看看,是不是多了一个sql文件。

光有备份还不够,还得知道怎么恢复,恢复就更简单了,用的是MariaDB的客户端命令mysql,命令长这样:

mysql -u 你的用户名 -p 要恢复到的数据库名字 < 备份文件的路径.sql

注意,这里的方向符号变成了<,意思是把后面那个备份文件里的内容,“喂给”mysql命令去执行,同样举个例子,如果我想把刚才备份的“shop”数据库恢复回来(假设数据库已经因为意外清空了),命令就是:

mysql -u root -p shop < /home/shop_backup_20231027.sql

输入密码,等命令执行完,你的数据就都回来啦!

上面说的只是最基础的备份一个数据库,有时候我们服务器上可能有好几个数据库,都想一起备份,那该怎么办呢?这时候可以用一个--all-databases参数,就像这样:

mysqldump -u root -p --all-databases > /home/full_backup_20231027.sql

这个命令会把MariaDB里面所有的数据库都打包备份到一个文件里,非常适合做整台服务器的完整备份,恢复的时候也一样,用mysql命令,但不需要指定数据库名了,因为它包含了创建数据库的语句。

听起来是不是挺简单的?但事情还没完,对于一个正经要用的网站或者应用,你不能总是手动去执行命令对吧?那样太麻烦了,而且也容易忘记,我们需要让备份“自动化”,在Linux系统上,有一个超级好用的工具叫cron,它可以帮我们定时执行任务。

你可以写一个简单的脚本文件(比如叫backup.sh),把上面的mysqldump命令写进去,通过配置cron任务,让它每天凌晨2点自动运行这个脚本,这样,你每天醒来,就有一个新鲜的备份文件躺在那里了,完全不用操心,具体的cron配置方法这里不展开,你可以搜一下“Linux crontab 定时任务”,有大量简单的教程。

还有一个非常重要的提醒:备份文件千万不要放在和数据库同一台服务器上! 你想啊,如果服务器整个硬盘坏了或者被入侵了,你放在上面的备份不也跟着没了吗?备份文件最好能自动传送到另一个地方,比如另一台服务器、网盘,或者专用的备份存储空间,这可以通过在备份脚本里加入SCP命令或者使用云存储的工具(如s3cmd等)来实现。

最后总结一下,搞定MariaDB数据安全的关键几步:第一,学会用mysqldump这个核心工具;第二,知道怎么用mysql命令来恢复;第三,利用cron实现自动化定时备份;第四,也是最重要的一点,把备份文件异地保存,做好这几点,你的数据安全就有了最基本的保障,心里也就踏实多了。 结束)

Mariadb备份数据库那些事儿,教你简单几步搞定数据安全问题