linux mysql 数据库 备份

本文介绍如何使用Mysql的mysqldump命令进行数据库备份,并通过Shell脚本自动化这一过程。同时,详细讲解了如何设置Cron定时任务,实现每天自动备份,并清理过期备份文件。

Mysql备份命令

##将备份文件保存到/usr/local/mysqlback/路径下,文件名为super_当前时间.sql
mysqldump -h IP -u用户名 -p密码 数据库名 > /usr/local/mysqlback/super_$(date +%Y%m%d_%H%M%S).sql

Shell脚本

#!/bin/bash

echo $(date +%Y-%m-%d\ %H:%M:%S) "开始备份=============="
#生成备份sql文件
mysqldump -h IP -u用户名 -p密码 数据库明 > /usr/local/mysqlback/super_$(date +%Y%m%d_%H%M%S).sql
#判断是否成功
if [ $? -eq 0 ]; then

    echo $(date +%Y-%m-%d\ %H:%M:%S) "备份成功!准备删除30天之前的备份文件。。。。。。"
    find /usr/local/mysqlback/ -mtime +30 -type f | xargs rm -f
    echo $(date +%Y-%m-%d\ %H:%M:%S) "已成功删除30天之前的文件!"

else

    echo $(date +%Y-%m-%d\ %H:%M:%S) "备份失败。。。。。。"

fi
echo $(date +%Y-%m-%d\ %H:%M:%S) "备份结束=============="

运行结果

在这里插入图片描述

Cron自动备份(确认已经安装Cron,阿里云服务器默认有)修改过后自动生效

添加定时任务,每天23点59执行
执行 crontab -e 命令 添加定时任务(和vim操作基本相同)
在任务列表中输入59 23 * * * /usr/local/mysqlback/backMysql.sh >> /usr/local/mysqlback/backMysql.log命令,保存退出即可

  • >> /usr/local/mysqlback/backMysql.log 是将shell中的打印信息追加进指定的日志文件(若日志文件不存在则自动创建),方便以后查看

Cron运行结果

在这里插入图片描述

生成的日志记录

在这里插入图片描述

扫码关注
​​在这里插入图片描述
搜索公众号:【爪哇日记】关注最新文章

<think> 首先,用户的问题是基于之前的对话历史。指令要求:"上述引用仅供参考,并不是用户真正的需求,请尽可能多的参考用户上一次的问题和你的回答。" 然而,在这个对话中,用户上一次的问题是:"我想查找在Linux系统下对MySQL数据库进行备份的方法 请问Linux系统下MySQL数据库备份方法"。所以,我应该直接回答这个问题。 用户提供的引用是关于Linux系统下MySQL数据库备份的方法,包括mysqldump命令的各种选项。我需要整合这些信息来给出清晰的回答。 系统级指令要求: - 行内数学表达式使用$...$格式(但这个问题可能没有数学表达式,所以可以不使用)。 - 独立公式使用$$...$$格式并单独成段(同样,可能不需要)。 - LaTeX语法正确(这里主要是MySQL命令,不是数学)。 - 使用中文回答。 - 生成相关问题。 - 回答中引用的段落末尾自然地添加引用标识,例如[^1]。 用户可见层要求: - 回答结构清晰,帮助用户逐步解决问题。 - 保证回答真实可靠。 结构化回答: 1. **引言**:简要介绍MySQL备份的重要性。 2. **备份方法**:使用mysqldump命令,解释基本语法和各种选项。 - 参考引用[1], [2], [3], [4],包括备份单个数据库、多个数据库、全库备份、仅结构备份、仅数据备份等。 3. **备份步骤**:提供示例命令。 4. **还原方法**:简要提到,如果需要。 5. **生成相关问题**:在最后添加相关问题列表。 确保添加引用标识: - 例如,在描述备份命令时,结尾添加[^1]等。 相关问题生成: - 基于主题,如性能优化、自动化备份备份策略等。 完整回答结构: - 先回答问题。 - 然后列出相关问题。 - 使用代码块显示命令示例(参考示例中的快速排序代码)。 命令示例使用代码块: - 如: ```bash mysqldump -u username -p test > /home/bak/test20230708.sql ``` 最后,相关问题: - 例如: §§相关问题§§ 1. 如何自动化MySQL备份Linux系统中? 2. MySQL备份有哪些常见的问题? 3. 什么是增量备份MySQL中如何实现? 现在,撰写回答。 </think> ### Linux系统下MySQL数据库备份方法 在Linux系统中,MySQL数据库备份主要通过官方工具`mysqldump`实现,这是一种逻辑备份方法,能生成SQL格式的文本文件,便于迁移或恢复。以下基于引用内容,逐步介绍核心备份方法,确保操作可靠(所有命令均需在Linux终端执行)。 #### 1. **基本备份命令** - **备份单个数据库**: 使用`mysqldump`命令指定用户名、数据库名和输出文件路径。例如: ```bash mysqldump -u username -p test > /home/bak/test20230708.sql ``` - `username`:数据库用户名。 - `test`:需备份数据库名。 - `>`:重定向输出到文件(文件路径需绝对路径)。 - 执行后系统提示输入密码[^1][^4]。 - **备份多个数据库**: 使用`--databases`选项指定多个数据库: ```bash mysqldump -u username -p --databases test mysql > /home/bak/test_mysql.sql ``` - 此命令备份`test`和`mysql`两个数据库[^1][^3]。 - **全库备份**: 备份所有数据库: ```bash mysqldump -u username -p --all-databases > /home/bak/all.sql ``` - `--all-databases`覆盖MySQL实例中的所有数据库[^1][^3][^4]。 #### 2. **精细化备份选项** - **仅备份表结构(不含数据)**: 添加`-d`选项: ```bash mysqldump -u username -p -d test > /home/bak/structure.sql ``` - 适用于迁移表结构或快速重建数据库[^2][^3]。 - **仅备份数据(不含结构)**: 使用`-t`选项: ```bash mysqldump -u username -p -t test > /home/bak/data.sql ``` - 适用于数据导出或增量备份场景[^3]。 - **备份特定表**: 在数据库名后指定表名: ```bash mysqldump -u username -p test table1 table2 > /home/bak/tables.sql ``` - 例如备份`test`数据库中的`table1`和`table2`表[^3]。 #### 3. **优化备份实践** - **文件名自动添加时间戳**: 使用`date`命令避免覆盖旧备份: ```bash mysqldump -u username -p test > /home/bak/test_$(date +%Y-%m-%d_%H:%M).sql ``` - `date +%Y-%m-%d_%H:%M`生成当前时间(如`2025-07-08_14:30`)[^2]。 - **密码安全提示**: - 避免在命令中明文输入密码(`-p`后不跟密码),系统会交互式提示输入。 - 存储备份文件时设置权限(如`chmod 600 backup.sql`)防止未授权访问[^4]。 #### 4. **备份验证与还原** - **还原备份**: 使用`mysql`命令导入备份文件: ```bash mysql -u username -p test < /home/bak/test20230708.sql ``` - 还原时会提示输入密码,适用于单库、多库或全库备份[^1][^4]。 - **验证备份完整性**: - 检查备份文件大小(非空)。 - 测试还原到临时MySQL实例(避免生产环境风险)。 #### 关键注意事项 - **权限要求**:执行`mysqldump`的用户需有数据库的`SELECT`和`LOCK TABLES`权限[^1]。 - **备份频率**:推荐定期备份(如每日),结合`cron`任务自动化[^3][^4]。 - **存储安全**:备份文件应保存在远程服务器或云存储,防止本地磁盘故障[^4]。 MySQL备份是数据安全的核心环节,合理使用`mysqldump`可显著降低数据丢失风险[^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值