Linux下mysql定时备份

本文详细介绍如何在Linux环境下设置MySQL数据库的定时备份,包括创建备份脚本、设置执行权限及利用crontab进行定时任务配置。同时解决执行mysqldump命令时未找到的问题,确保备份过程顺利。

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

创建备份文件

mkdir /var/lib/mysqlbackup 
cd /var/lib/mysqlbackup 

编写备份脚本代码

vi dbbackup.sh

粘贴以下代码务必更改其中的username,password和dbname

#!/bin/sh
mysqldump -uroot -p123456 ssc | gzip > /var/lib/mysqlbackup/dbname`date +%Y-%m-%d_%H%M%S`.sql.gz
cd  /var/lib/mysqlbackup
   rm -rf `find . -name '*.sql.gz' -mtime 10`  #删除10天前的备份文件

更改备份脚本权限

chmod +x dbbackup.sh 

用crontab定时执行备份脚本代码

crontab -e

若每天晚上2点00备份,添加如下代码,
代码: 00 2 * * * /var/lib/mysqlbackup/dbbackup.sh //若每天晚上2点00备份,添加如下代码,

问题:如果提示 执行mysqldump命令没找到

直接输入命令mysqldump会发现提示命令不存在,是由于系统默认会查找/usr/bin下的命令,如果这个命令不在这个目录下,自然会找不到命令,并报错。知道了问题的所在,就直接去处理,先用一条find命令查找mysqldump的所载路径。

find / -name mysql -print // 找到mysql的安装目录
然后再用ln命令链接到/usr/bin下面。

ln -fs /usr/local/mysql/bin/mysqldump /usr/bin  

mysqldump 几个参数

mysqldump  -uroot –proot --quick --no-create-info --extended-insert --default-character-set=utf-8 test>test.sql 

参数说明:
–quick:用于转储大的表,强制mysqldump从服务器一次一行的检索数据而不是检索所有行,并输出当前cache到内存中
–no-create-info:不要创建create table语句
–extended-insert:使用包括几个values列表的多行insert语法,这样文件更小,IO也小,导入数据时会非常快
–default-character-set=utf-8:按照原有字符集导出数据,这样导出的文件中,所有中文都是可见的,不会保存成乱码

文章转载于: https://blog.youkuaiyun.com/qq_36698956
版权声明:博客对我来说是记忆的笔记和知识的分享~非常感谢博客大神的帮助,若有无意侵权,请您联系我,谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值