mysqldump 可以把整个数据库装载到一个单独的文本文件中。这个文件包含有所有重建您的数据库所需的 SQL 命令。这个命令取得所有的模式并将其转换成 DDL 语法,取得所有数据,并从这些数据中创建 INSERT 语句。这个工具将您的数据库中所有的设计倒转。因为所有的东西都被包含到了一个文本文件中。这个文本文件可用一个简单的批处理和一个合适 SQL 语句导回到 MySQL。
需求背景
杜老师说的评论数据存放于 MySQL 数据库,为保证服务持久性,故需独立部署。单独使用云主机太浪费,云数据库成本又高,所以杜老师选择临时的 MySQL 数据库。
但是无法保障该数据库的安全性,所以需要使用定期备份,以确保评论不丢失。
备份命令
命令格式,其中的大写处为自定义:
1  | mysqldump -hHOSTNAME -uUSERNAME -pPASSWORD DATABASE > /PATH/FILENAME.sql  | 
命令解释:
| 命令 | 解释 | 
|---|---|
| mysqldump | 备份命令 | 
| -hHOSTNAME | 指定数据库的访问地址 | 
| -uUSERNAME | 指定数据库的访问用户 | 
| -pPASSWORD | 数据库用户的密码 | 
| DATABASE | 需备份的数据库名 | 
| > | 将生成的数据写入文件 | 
| /PATH/FILENAME.sql | 备份文件路径 | 
备份脚本
按照日期生成备份文件,脚本内容参考如下:
1  | #!/bin/bash  | 
如需定时执行,先执行 crontab -e,然后添加如下内容:
1  | 0 0 * * * /PATH/mysqldump.sh  | 
写在最后
如提示 mysqldump 命令没有找到,则运行下面的命令安装:
1  | apt -y install mysql-client # for Debian or Ubuntu  | 
如提示文件无权限,则运行下面的命令安装:
1  | chmod +x /PATH/mysqldump.sh  |