使用Shell脚本可以方便地备份MyQL数据库,如果某个表过大,可以忽略它。
以下为示例脚本:
#!/bin/bash
# MySQL数据库信息
DB_USER="root"
DB_PASSWORD="your_password"
DB_NAME="your_database"
# 忽略备份的表
IGNORE_TABLE="your_table"
# 备份文件存放目录
BACKUP_DIR="/path/to/backup/directory"
# 备份文件名
BACKUP_FILE="${BACKUP_DIR}/${DB_NAME}_$(date +%Y-%m-%d_%H%M%S).sql"
# 执行备份命令,忽略指定表
mysqldump -u${DB_USER} -p${DB_PASSWORD} --single-transaction --skip-lock-tables --ignore-table=${DB_NAME}.${IGNORE_TABLE} ${DB_NAME} > ${BACKUP_FILE}
解释一下:
- 首先,定义了数据库的用户名、密码、数据库名和备份文件存放目录等信息。
- 然后,定义了要忽略备份的表名。
- 接着,定义了备份文件的文件名,格式为
数据库名_日期时间.sql
,使用date
命令来获取当前的日期时间。 - 最后,执行备份命令
mysqldump
,使用--ignore-table
选项来忽略指定的表,将备份内容输出到指定的文件中。
将以上脚本保存为一个文件,例如backup.sh
,并使用chmod +x backup.sh
命令将其设为可执行权限。然后,只需在终端中执行该文件即可进行备份。如果需要定时执行备份,可以使用crontab设置定时任务。