服务器运维Linux
2025-04-03 14:13阅读:27评论:0
mysql备份和恢复数据库
备份数据库 恢复数据库
_PROTECTED0__
bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/bin/bash MYSQL_HOST="127.0.0.1"MYSQL_PORT="3306"MYSQL_USER="root"MYSQL_PASSWORD="123456" BACKUP=/home/.backupsql DATETIME=$(date +%Y%m%d%H%M) DATABASES=`/usr/local/mysql/bin/mysql -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} -e "SHOW DATABASES;"` for db in $DATABASES; do # 忽略备份的数据库 if [[ "$db" != "Database" ]] && [[ "$db" != "information_schema" ]] && [[ "$db" != "performance_schema" ]] && [[ "$db" != "mysql" ]] ; then echo "正在备份数据库: $db" rm -rf "${BACKUP}/$db" mkdir -p "${BACKUP}/$db" /usr/local/mysql/bin/mysqldump -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} --databases $db > ${BACKUP}/$db/${db}.sql echo "数据库【$db】已备份到:${BACKUP}/${DATETIME}/$db.sql 下" fidone #删除180天前的备份数据#find ${BACKUP} -mtime +180 -name "*.sql" -exec rm -rf {} \; _PROTECTED0__
sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/bin/bash DB_USER="root" # MySQL用户名DB_PASSWORD="123456" # MySQL密码 # 需要恢复的数据库列表dbName="db_test1","db_test2"DATABASES=(`echo $dbName | tr ',' ' '` ) BACKUP_DIR="/home/.backupsql/" # 存放备份文件的目录路径 for db in ${DATABASES[@]}; do echo "Restoring database $db..." /usr/local/mysql/bin/mysql -u$DB_USER -p$DB_PASSWORD $db < "$BACKUP_DIR/${db}/${db}.sql"done