错误表现:Permission denied
或 Access denied
解决方案:
# 确保备份用户有足够权限
sudo chown -R mysql:mysql /var/lib/mysql
sudo chmod -R 755 /var/lib/mysql
# 或者使用root用户执行备份
sudo mysqldump -u root -p database_name > backup.sql
错误表现:No space left on device
解决方案:
# 检查磁盘空间
df -h
# 清理空间或指定其他存储位置备份
mysqldump -u user -p database_name > /mnt/backup_storage/backup.sql
错误表现:Can't connect to MySQL server
解决方案:
# 检查MySQL服务状态
sudo systemctl status mysql
# 启动MySQL服务(如果停止)
sudo systemctl start mysql
# 检查连接配置
mysql -u user -p -h localhost
错误表现:Lock wait timeout exceeded
解决方案:
# 增加锁等待超时时间
mysqldump --lock-wait-timeout=120 -u user -p database_name > backup.sql
# 或者使用不锁表选项(可能影响数据一致性)
mysqldump --single-transaction -u user -p database_name > backup.sql
# 完整数据库备份
mysqldump -u [username] -p[password] [database_name] > backup.sql
# 备份所有数据库
mysqldump -u [username] -p[password] --all-databases > full_backup.sql
# 带时间戳的备份
mysqldump -u [username] -p[password] [database_name] > db_$(date +%Y%m%d).sql
# 完整备份
pg_dump -U [username] -W -F t [database_name] > backup.tar
# 备份所有数据库
pg_dumpall -U [username] -W > full_backup.sql
# 完整备份
mongodump --host [hostname] --port [port] -u [username] -p [password] --out /backup/path
# 压缩备份
mongodump --gzip --archive=backup_$(date +%Y%m%d).gz
#!/bin/bash
# 配置参数
DB_USER="username"
DB_PASS="password"
DB_NAME="database_name"
BACKUP_DIR="/path/to/backup"
DATE=$(date +%Y%m%d_%H%M%S)
KEEP_DAYS=7
# 创建备份目录
mkdir -p $BACKUP_DIR
# 执行备份
mysqldump -u$DB_USER -p$DB_PASS $DB_NAME | gzip > $BACKUP_DIR/$DB_NAME_$DATE.sql.gz
# 删除旧备份
find $BACKUP_DIR -name "*.sql.gz" -type f -mtime +$KEEP_DAYS -exec rm {} \;
# 记录日志
echo "Backup completed at $(date)" >> $BACKUP_DIR/backup.log
mysql -u [username] -p[password] [database_name] < backup.sql
pg_restore -U [username] -W -d [database_name] backup.tar
mongorestore --host [hostname] --port [port] -u [username] -p [password] /backup/path
如需针对特定数据库或特定错误提供更详细的解决方案,请提供具体的错误信息和数据库类型。