宝塔备份文件默认存于/www/backup/,分site、database、panel三目录;还原前须确认文件存在、目标库已建且同名、目录权限正确,并注意字符集兼容性;手动恢复需用命令行或SFTP操作。

备份文件在哪?先定位再操作
宝塔的备份文件默认存在 /www/backup/,网站、数据库、面板设置三类备份各自分目录:比如网站备份在 /www/backup/site/,MySQL 备份在 /www/backup/database/。别急着点“恢复”,先 ssh 进去确认文件真实存在——很多人点了还原却失败,就是因为备份被手动删过、或磁盘满导致备份中途写入失败。
- 用
ls -lh /www/backup/database/看 .sql 文件是否完整(大小不为 0) - 检查
/www/backup/site/下对应网站名的 .zip 是否有时间戳匹配你记得的备份时刻 - 如果用过自定义备份路径(比如改过
task.json里的backup_path),得去配置里找真实路径,而不是默认路径
点“还原”按钮前必须确认的三件事
宝塔界面上点一下【还原】看似简单,但背后会直接覆盖线上数据。不是所有备份都“能用”,尤其跨版本或跨服务器迁移时。
- 确认目标数据库已存在且名称一致:还原 MySQL 时,如果面板里没提前建好同名库,会报错
ERROR: Can't connect to database: No such file or directory - 检查权限:还原网站时,
/www/wwwroot/下目标目录需对www用户可写,否则解压失败但界面可能只显示“还原中”卡住 - 别忽略字符集:从老版本 MySQL(如 5.6)备份的 .sql,若直接导入到新版本(如 8.0),可能因
utf8mb4_0900_ai_ci默认排序规则不兼容,导致部分中文乱码或建表失败
手动恢复才是真兜底方案
当面板点击还原失败、或你要恢复的是被删掉的单张表(比如误删了 wp_posts),就得绕过界面,直奔文件和命令行。
- 网站文件:把
/www/backup/site/xxx.zip下载下来,解压后用 sftp 上传覆盖/www/wwwroot/xxx/,再chown -R www:www /www/wwwroot/xxx - MySQL 单表恢复(用 .frm + .ibd):先在同库下建空表结构(字段类型、引擎、字符集必须完全一致),停掉 mysqld,替换
/www/server/data/数据库名/表名.frm和.ibd,再启服务;注意.err日志里若出现InnoDB: Operating system error number 13,大概率是文件权限没给 www 用户 - SQL 导入失败时,优先用命令行:
mysql -u root -p 数据库名 ,比 phpMyAdmin 更稳定,也方便看报错位置
还原后验证不能只看“成功”弹窗
面板显示“还原成功”只代表文件拷贝或 SQL 执行完,不代表业务可用。真实问题常出现在细节里。
- 检查
/www/wwwroot/xxx/.user.ini是否被覆盖丢失——这个文件控制 PHP 运行限制,没了会导致上传失败或 500 错误 - WordPress 类站点,进后台看「设置 → 固定链接」点一次保存,否则伪静态规则失效,页面 404
- 数据库连接测试别只信 phpMyAdmin 能连,要用网站实际跑一遍登录、提交表单,因为有些错误(如
mysqli::query(): Couldn't fetch mysqli)只在 PHP 连接池复用时暴露
最常被跳过的一步:还原后没清浏览器缓存和 CDN 缓存,看着页面“正常”,其实是旧资源在撑场面。等缓存一过,立刻 502 或白屏。











