—— 阿尔伯特·爱因斯坦

程序员の奇妙冒险

服务器运维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 下"
fi
done
 
 
#删除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
 
评论(0)
暂无评论来抢沙发吧~