#!/bin/bash
USER="root"
PASS="123456"
HOST="127.0.0.1"
PORT="3306"
BACKUP_DIR="./"
DATE=$(date +%F_%H-%M-%S)
mkdir -p ${BACKUP_DIR}/${DATE}
# 获取数据库列表
databases=$(mysql -u${USER} -p${PASS} -h${HOST} -P${PORT} -e "SHOW DATABASES;" \
| grep -Ev "(Database|information_schema|performance_schema|mysql|sys)")
for db in $databases; do
echo "备份中: $db"
mysqldump -u${USER} -p${PASS} -h${HOST} -P${PORT} \
--single-transaction \
--quick \
--routines \
--triggers \
$db | gzip > ${BACKUP_DIR}/${DATE}/${db}.sql.gz
if [ $? -eq 0 ]; then
echo "✅ 成功: $db"
else
echo "❌ 失败: $db"
fi
done
echo "🎉 所有数据库备份完成,目录: ${BACKUP_DIR}/${DATE}"
登录后可发表评论
点击登录