插件窝 干货文章 LAMP架构下数据库如何备份与恢复

LAMP架构下数据库如何备份与恢复

备份 MySQL backup 恢复 782    来源:    2025-05-07

LAMP架构下MySQL数据库备份与恢复指南

一、备份方法

1. mysqldump工具(最常用)

# 备份单个数据库
mysqldump -u [username] -p[password] [database_name] > backup.sql

# 备份所有数据库
mysqldump -u [username] -p[password] --all-databases > all_backup.sql

# 备份特定表
mysqldump -u [username] -p[password] [database_name] [table1] [table2] > tables_backup.sql

# 带时间戳的备份文件名
mysqldump -u [username] -p[password] [database_name] > db_$(date +%Y%m%d_%H%M%S).sql

2. 直接复制数据文件(适用于MyISAM存储引擎)

# 停止MySQL服务
sudo service mysql stop

# 复制数据目录(默认通常在/var/lib/mysql)
sudo cp -R /var/lib/mysql /backup/mysql_backup

# 重启MySQL服务
sudo service mysql start

3. 使用mysqlhotcopy(仅适用于MyISAM)

mysqlhotcopy -u [username] -p [password] [database_name] /backup/directory

4. 自动化备份脚本

#!/bin/bash
# 数据库备份脚本
USER="username"
PASS="password"
DB="database_name"
BACKUP_DIR="/path/to/backup"
DATE=$(date +%Y%m%d_%H%M%S)

mysqldump -u$USER -p$PASS $DB > $BACKUP_DIR/$DB_$DATE.sql

# 删除7天前的备份
find $BACKUP_DIR -name "*.sql" -type f -mtime +7 -exec rm {} \;

二、恢复方法

1. 使用mysql命令恢复

mysql -u [username] -p[password] [database_name] < backup.sql

2. 恢复所有数据库

mysql -u [username] -p[password] < all_backup.sql

3. 恢复特定表

mysql -u [username] -p[password] [database_name] < table_backup.sql

4. 从二进制日志恢复(增量恢复)

# 首先恢复完整备份
mysql -u root -p < full_backup.sql

# 然后应用二进制日志
mysqlbinlog /var/log/mysql/mysql-bin.000123 | mysql -u root -p

三、备份策略建议

  1. 完整备份+增量备份

    • 每周一次完整备份
    • 每天一次增量备份(使用二进制日志)
  2. 异地备份

    • 将备份文件复制到远程服务器或云存储
  3. 备份验证

    • 定期测试恢复过程确保备份有效
  4. 加密敏感数据

    • 对包含敏感信息的备份进行加密

四、安全注意事项

  1. 不要在命令行中直接使用密码(可以使用配置文件或提示输入)
  2. 限制备份文件的访问权限
  3. 考虑使用SSL连接进行远程备份
  4. 定期轮换备份密钥(如果使用加密)

五、常用工具增强

  1. Percona XtraBackup(适用于InnoDB的热备份工具)
  2. Automysqlbackup(自动化备份脚本)
  3. phpMyAdmin(图形界面备份恢复)

通过合理使用这些方法,您可以确保LAMP架构中的MySQL数据库得到有效保护,并在需要时能够快速恢复。