温馨提示×

ubuntu lamp如何备数据库

小樊
37
2026-10-09 22:47:44
栏目: 智能运维

在 Ubuntu 的 LAMP 环境(Linux + Apache + MySQL/MariaDB + PHP)中,备份数据库通常指备份 MySQL 或 MariaDB 数据库。下面按常见场景给你一套实用方法。


一、最常用:用 mysqldump 备份(推荐)

1. 备份单个数据库

mysqldump -u root -p 数据库名 > /backup/db_数据库名_$(date +%F).sql

示例:

mysqldump -u root -p wordpress > /backup/wp_2026-01-21.sql

2. 备份所有数据库

mysqldump -u root -p --all-databases > /backup/all_db_$(date +%F).sql

3. 压缩备份(节省空间)

mysqldump -u root -p 数据库名 | gzip > /backup/db_$(date +%F).sql.gz

二、自动定时备份(cron)

1. 编写备份脚本

sudo nano /usr/local/bin/backup_db.sh

内容示例:

#!/bin/bash
DATE=$(date +%F)
mysqldump -u root -p密码 数据库名 | gzip > /backup/db_$DATE.sql.gz

⚠ 建议用 .my.cnf 存密码,避免明文

2. 设置权限

chmod +x /usr/local/bin/backup_db.sh

3. 加入定时任务

crontab -e

每天凌晨 2 点备份:

0 2 * * * /usr/local/bin/backup_db.sh

三、使用 .my.cnf 安全存密码(推荐)

nano ~/.my.cnf

内容:

[client]
user=root
password=你的密码

权限:

chmod 600 ~/.my.cnf

之后备份可省略 -p:

mysqldump 数据库名 > backup.sql

四、物理备份(大库推荐)

适合 几十 GB 以上 数据库:

MySQL

sudo systemctl stop mysql
sudo tar -zcvf /backup/mysql_data.tar.gz /var/lib/mysql
sudo systemctl start mysql

或使用:

  • mysqlbackup(企业版)
  • Percona XtraBackup(免费,推荐)

五、恢复数据库

恢复 SQL 备份

mysql -u root -p 数据库名 < backup.sql

恢复压缩备份

gunzip < backup.sql.gz | mysql -u root -p 数据库名

六、LAMP 备份建议(完整方案)

  • ✅ 数据库:mysqldump
  • ✅ 网站文件:/var/www/html
  • ✅ 配置:/etc/apache2、/etc/mysql

示例:

tar -zcvf /backup/site_$(date +%F).tar.gz /var/www/html

如果你愿意,可以告诉我:

  • 用的是 MySQL 还是 MariaDB
  • 数据库 大小
  • 是否需要 远程备份 / 云存储

我可以帮你写一套完整备份脚本。

0 踩