mysql数据库备份脚本
时间: 2023-09-12 18:12:32 浏览: 43
以下是一个简单的 MySQL 数据库备份脚本示例:
```bash
#!/bin/bash
# MySQL 数据库备份脚本
# 数据库登录信息
DB_USER="yourusername"
DB_PASSWORD="yourpassword"
# 备份目录
BACKUP_DIR="/path/to/backup/directory"
# 获取当前日期和时间
DATETIME=$(date +%Y-%m-%d_%H-%M-%S)
# 要备份的数据库列表
DATABASES=("database1" "database2" "database3")
# 遍历数据库列表并备份每个数据库
for DATABASE in ${DATABASES[@]}
do
# 构造备份文件名
FILENAME="$DATABASE-$DATETIME.sql"
# 执行备份命令
mysqldump -u $DB_USER -p$DB_PASSWORD $DATABASE > $BACKUP_DIR/$FILENAME
# 压缩备份文件
gzip $BACKUP_DIR/$FILENAME
done
echo "备份完成。"
```
这个脚本会备份指定的 MySQL 数据库,并将备份文件保存在指定的目录下。备份文件名包括数据库名和当前日期时间。备份完成后,备份文件会被压缩。你可以根据需要修改脚本中的参数和细节。
相关问题
编写mysql 数据库备份脚本
好的,以下是一个基本的 MySQL 数据库备份脚本,其中数据库账号密码从文本文件中读取:
```bash
#!/bin/bash
# 读取数据库账号密码
source /path/to/credentials.txt
# 备份文件名
BACKUP_FILE=db_backup_$(date +%Y%m%d%H%M%S).sql
# 备份命令
mysqldump --user=$DB_USER --password=$DB_PASSWORD --databases db_name > $BACKUP_FILE
# 压缩备份文件
gzip $BACKUP_FILE
# 将备份文件上传到远程服务器
ssh user@remote_host "mkdir -p /path/to/backups && scp $BACKUP_FILE.gz user@remote_host:/path/to/backups"
# 删除本地备份文件
rm $BACKUP_FILE.gz
```
在上面的脚本中,`credentials.txt` 文件中存储了数据库账号密码,格式如下:
```
DB_USER=username
DB_PASSWORD=password
```
您需要将 `username` 和 `password` 替换为实际的数据库账号和密码。另外,请将 `db_name` 替换为需要备份的数据库名称。在执行脚本之前,请确保您已经安装了 MySQL 客户端程序和 SSH 客户端程序。
K8S mysql 数据库备份脚本
根据提供的引用内容,K8S中的MySQL数据库备份脚本可以使用多种工具和脚本来实现。其中,常用的工具包括mysqldump、xtrabackup、mysqlbackup和mysql shell。这些工具可以通过编写shell脚本或Windows bat脚本来执行备份操作。
一个示例的备份脚本如下所示:
```bash
#!/bin/bash
backup_path="/opt/app-ai/deepwise/data/mysql-backup"
data_dir="/opt/app-ai/deepwise/data/mysql-data"
DATE=$(date +%Y-%m-%d_%H-%M-%S)
backup(){
if \[ ! -z "${data_dir}" \];then
mkdir -p ${backup_path}
date >> ${backup_path}/${DATE}.log
echo "innobackupex --user=root --password=password --host=mysql-headless ${backup_path} > ${backup_path}/${DATE}.log 2>&1 &"
innobackupex --user=root --password=password --host=mysql-headless ${backup_path} > ${backup_path}/${DATE}.log 2>&1
date >> ${backup_path}/${DATE}.log
fi
}
clean(){
find ${backup_path}/ -name "*" -mtime +14 -exec rm -rf {} \;
}
backup
clean
```
这个脚本使用innobackupex工具来执行MySQL备份操作,并将备份文件存储在指定的路径中。同时,还包括了清理过期备份文件的功能。
此外,还可以使用Kubernetes的CronJob来定期执行增量备份操作。一个示例的CronJob配置如下所示:
```yaml
apiVersion: batch/v1beta1
kind: CronJob
metadata:
namespace: deepwise
name: mysql-incdump
spec:
jobTemplate:
spec:
completions: 1
template:
spec:
restartPolicy: Never
volumes:
- name: mysql-script
hostPath:
path: /opt/app-ai/deepwise/data/scripts
- name: mysql-backup
hostPath:
path: /opt/app-ai/deepwise/data/mysql-backup
- name: local-time
hostPath:
path: /etc/localtime
- name: mysql-data
hostPath:
path: /opt/app-ai/deepwise/data/mysql-data
containers:
- name: mysqldump-container
image: percona/percona-xtrabackup:2.4
volumeMounts:
- name: mysql-script
mountPath: /opt/app-ai/deepwise/data/scripts
- name: local-time
mountPath: /etc/localtime
- name: mysql-backup
mountPath: /opt/app-ai/deepwise/data/mysql-backup
- name: mysql-data
mountPath: /var/lib/mysql
command:
- "sh"
- "/opt/app-ai/deepwise/data/scripts/backup_inc.sh"
schedule: "0 0 * * *"
```
这个CronJob配置使用percona/percona-xtrabackup镜像来执行增量备份操作,并将备份文件存储在指定的路径中。备份脚本backup_inc.sh位于/opt/app-ai/deepwise/data/scripts目录下。
请根据实际情况修改脚本和配置文件中的路径和参数,以适应您的环境和需求。
#### 引用[.reference_title]
- *1* [分享(2)一个 mysqldump 备份 MySQL 数据库的脚本](https://blog.csdn.net/weixin_44496870/article/details/129706015)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* *3* [[kubernetes]-使用cronjob定时备份mysql](https://blog.csdn.net/xujiamin0022016/article/details/124648643)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]