shell脚本定时备份mysql数据库
使用mysqldump已经shell脚本定时备份数据库
系列文章目录
1.mysqldump常用命令语法
2.编写命令
3.将命令写入shell脚本
4.写入定时任务
示例系统:centos7
mysql版本:5.7
一、mysqldump命令
全量备份(数据+结构): mysqldump -uroot -p123456 -A > 备份文件路径
指定库备份(数据+结构): mysqldump -uroot -p123456 库名 > 备份文件路径
多个库备份(数据+结构): mysqldump -uroot -p123456 --databases db1 db2 > 备份文件路径
二、编写命令
2.1 测试脚本
示例中我们选择指定库备份,下面我的数据库基本信息:root 密码:woshi4r? 数据库:yqz
我们可以先直接在命令行执行一下命令:
[root@bogon /]# mysqldump -uroot -pwoshi4r? yqz > /usr/mysql/back/uuu
稍微解释一下命令的含义:该命令会将备份文件保存指系统中/usr/mysql/back/uuu文件中,有的朋友执行可能会出现如下报错:
bash: mysqldump: 未找到命令…
``这里有两种解决办法
1)一种是到mysqldump所在的目录下,再执行上面的备份命令。可以使用如下命令来寻找mysqldump的所在目录。
[root@bogon log]# find / -name mysqldump
/opt/mysql/mysql-5.7/bin/mysqldump
2)另外是将mysqldump加到系统环境变量中
编辑 ~/.bashrc
或~/.bash_profile
文件vi ~/.bash_profile
或者 vi ~/.bashrc
在文件末行添加
export PATH=$PATH:/opt/mysql/mysql-5.7/bin
使用 source ~/.bash_profile
或者 source ~/.bashrc
使环境变量更改生效。
2.2 为了避免手动输入密码,你可以使用配置文件或环境变量来传递密码
1)编辑或创建 ~/.my.cnf 文件,在文件中添加如下内容。
注:请替换自己的账号密码
[client]
user=root
password=woshi4r?
- 设置文件权限,只能自己读取
chmod 600 ~/.my.cnf
到此,便可使用简化命令 mysqldump yqz > /usr/mysql/back/uuu
来备份数据库
三、将命令写入shell脚本
在 /opt/mysql/dumpsh/
中创建脚本 mysqldump.sh 文件并编辑
#!/bin/bash
# 定义备份文件名
database="generalx_pm"
filename="${database}_"`date +'%Y%m%d'`".sql"
echo "备份文件名: $filename"
# 定义备份文件的路径
backup_dir="/usr/mysql/back"
mkdir -p $backup_dir
# 创建备份
mysqldump "$database" > $backup_dir/$filename
# 检查备份是否成功
if [ $? -eq 0 ]; then
echo "数据库备份成功: $backup_dir/$filename"
else
echo "数据库备份失败,请检查错误信息"
fi
四、写入定时任务
crontab -e
0 0 * * * /opt/mysql/dumpsh/mysqldump.sh >>/var/log/mysql_backup.log 2>&1
这里表示每天备份一次
总结
以上就是这次分享的内容,本文仅仅简单介绍了如何定时使用mysqldump来备份数据库,相关shell脚本和定时任务不是本文章重点,所以没有过多解释。

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)