Linux下备份mysql数据库

女生的网名这么多〃 提交于 2020-01-25 08:43:26

引言

最近在学习linux基础命令,学到任务调度时发现可以利用Linux自带的crontab进行mysql数据库的备份,正好笔者有一个腾讯云需要备份。一个良好的系统必须定期备份,否则如果真正需要时再想到备份,肯定来不及。

基础知识

首先需要先了解什么是mysqldump?
Linux下输入

man mysqldump

可以得到Linux下给出的解释为:

The mysqldump client utility performs logical backups, producing a set
of SQL statements that can be executed to reproduce the original
database object definitions and table data. It dumps one or more
MySQL databases for backup or transfer to another SQL server.

大体意思如下:
mysqldump用于逻辑备份同时产生一系列能够重新执行产生原始数据库定义的对象和数据表的SQL语句,它会转储一个或多个Mysql数据库用于备份或者转移到其他的SQL服务器

百度百科给出的解释:
mysqldump是mysql用于转存储数据库的实用程序。它主要产生一个SQL脚本,其中包含从头重新创建数据库所必需的命令CREATE TABLE INSERT等。

实际操练

注意:需要进入mysql的bin目录才能使用mysqldump

案例1:(基础备份命令)

格式:mysqldump -u用户名 -p密码 数据库名 > 文件名.sql

实例:mysqldump -uroot -proot  test > /data/backup/test.sql

解析:> 为linux常用的命令之一,用于将数据写入test.sql(如果存在则覆盖)
简单看一下产生的sql
在这里插入图片描述
首先是关于页面编码的格式设置
在这里插入图片描述
这就是帮我们产生的SQL语句可以看到它不仅帮我们插入了我们的数据而且还将表的结构给创建好了(非常方便)

案例2:(备份一库多表)

格式:mysqldump -u用户名 -p密码 数据库名 表1 表2 … > 文件名.sql

  实例:mysqldump  -uroot -proot  test table1 table2 > /data/backup/test.sql

案例3:(备份多个数据库)

格式:mysqldump -u用户名 -p密码 数据库1 数据库2 … > 文件名.sql

  实例:mysqldump -uroot -proot  test1 test2 > /data/backup/test.sql

案例4:(备份所有数据库)

格式:mysqldump -u用户名 -p密码 --all-databases > 文件名.sql

  实例:mysqldump -uroot -proot --all-databases >/data/backup/test.sql

案例5:(备份数据库不备份数据)

格式:mysqldump -u用户名 -p密码 --no-data 数据库名 > 文件名.sql

  实例:mysqldump -uroot -proot  --no-data test1  >/data/backup/test.sql

案例6(备份数据库同时压缩)

当我们备份数据库时,有时因为数据表中数据过多需要备份的同时压缩数据,此时我们就可以利用Linux自带的原生的压缩命令压缩数据
格式:mysqldump -u用户名 -p密码 --database 数据库名 | gzip > 文件名.sql.gz

实例:mysqldump -uroot -proot   test1 | gzip > /data/backup/test.sql.gz   

案例7(定时备份mysql)

养成定时备份数据的习惯将有利于我们的数据存储

步骤1:创建shell脚本
在合适的Linux目录下输入

touch sqlbackup.sh

打开此目录

vim sqlbackup.sh

输入脚本指令后保存并退出

/usr/bin/mysqldump -uroot -proot test > /data/backup/sqlbackup.sql

步骤2:授权(此步非常重要)
笔者初次使用时由于忽略此步就遇到了权限不足的问题,如图所示
在这里插入图片描述
再此想提醒各位读者千万不要忽略权限
授予权限,在创建的脚本目录输入

ls -l 

查看是否具有权限,默认没有如图所示
在这里插入图片描述
输入授权指令

chmod u+x sqlbackup.sh

或者

chmod u=rwx sqlbackup.sh

或者

chmod 744 sqlbackup.sh

步骤3:利用crontab创建定时任务
Linux下输入指令修改定时任务配置

crontab -e

输入(当然此处随意填写,符合格式规范即可)

48 11 * * * /data/backup/sqlbackup.sh 

步骤4 验收
当到达指定时间后,查看目录即可看到创建的SQL备份文件

在这里插入图片描述

总结

通过本次操作复习了Linux基本的操作指令,同时养成了经常备份数据库的好习惯,有利于项目的开发与维护。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!