工作中有的客户要求,数据库必须有备份机制,这里总结了一些通用系统的备份文件,可以在windos、mac、Linux环境下运行
bash #!/bin/bash # 配置 MYSQL_USER='root' MYSQL_PASS='123456' MYSQL_HOST='localhost' MYSQL_PORT='3306' MYSQL_DB='mydatabase' # 检查系统类型 OS=$(uname -s) # 定义备份目录 if [ "$OS" == "Windows_NT" ]; then BACKUP_PATH='C:\mysql_backups' elif [ "$OS" == "Darwin" ]; then BACKUP_PATH='/Users/username/mysql_backups' else BACKUP_PATH='/var/backups/mysql' fi # 创建备份目录 if [ ! -d "$BACKUP_PATH" ]; then mkdir -p "$BACKUP_PATH" fi # 定义备份函数 backup() { DAY=$(date +%F) FILENAME=$MYSQL_DB-$DAY.sql echo "Starting backup of $MYSQL_DB..." if [ "$OS" == "Windows_NT" ]; then mysqldump -u$MYSQL_USER -p$MYSQL_PASS -h$MYSQL_HOST -P$MYSQL_PORT $MYSQL_DB > $BACKUP_PATH/$FILENAME elif [ "$OS" == "Darwin" ]; then mysqldump -u$MYSQL_USER -p$MYSQL_PASS -h$MYSQL_HOST -P$MYSQL_PORT $MYSQL_DB > $BACKUP_PATH/$FILENAME else mysqldump -u$MYSQL_USER -p$MYSQL_PASS -h$MYSQL_HOST -P$MYSQL_PORT $MYSQL_DB > $BACKUP_PATH/$FILENAME fi echo "Backup of $MYSQL_DB completed! Backup file: $BACKUP_PATH/$FILENAME" } # 定时执行备份函数 while : do backup sleep 24h done
对于不同的系统,执行这个 MySQL 备份脚本的方法是: - Windows: - 将脚本代码保存在例如 backup.bat 文件中 - 在包含 backup.bat 的目录下,双击执行或者在命令行中运行 backup.bat - Mac: - 将脚本代码保存在例如 backup.sh 文件中 - 打开终端,切换到 backup.sh 文件所在目录 - 执行命令:sh backup.sh - Linux: - 将脚本代码保存在例如 backup.sh 文件中 - 打开终端,切换到 backup.sh 文件所在目录 - 赋予执行权限:chmod +x backup.sh - 执行:./backup.sh