宝塔面板博客官方技术博客
宝塔面板

宝塔面板网站列表、数据库列表不显示怎么办?db 文件损坏,从备份恢复

宝塔面板的网站列表、数据库列表突然变成空白,但网站还能正常打开、数据库也能正常连接——这通常不是网站或数据库出了问题,而是面板用来记录这些列表的 db 文件被清空或损坏了。恢复思路很明确:优先从面板备份把损坏的 db 文件覆盖回来,没有备份再手动重新录入。

为什么列表空了,网站却还能访问

面板的网站列表和数据库列表数据,单独存放在服务器 /www/server/panel/data/db 目录下的两个 SQLite 文件里:

  • site.db:记录网站列表数据;
  • database.db:记录数据库列表数据。

site.db 和 database.db 文件位置

当这两个文件里的数据被清空或损坏后,面板列表就无法显示,看起来就是一片空白:

网站列表为空

但网站和数据库是 Nginx、MySQL 这类独立服务在运行,跟这两个 db 文件没有直接关系,所以网站仍能正常访问、数据库仍能正常连接。也就是说:列表空白是面板“记账本”丢了,不是服务挂了。

方案一:从面板备份恢复(推荐)

如果 /www/backup/panel 目录下还有之前的面板备份文件,这是官方推荐的恢复方式。两种操作路径任选其一。

图形界面操作

  1. 在【文件】管理器里解压前一天的备份压缩包;
  2. 进入解压目录中的 data/db 文件夹,找到 site.db 和 database.db 两个文件;
  3. 勾选这两个文件,点【复制】;
  4. 打开 /www/server/panel/data/db 目录,点【粘贴】并确认覆盖;
  5. 重启面板。

复制备份的 db 文件

重启后,网站列表和数据库列表即可恢复正常。

命令行操作

登录服务器,执行下面几条命令完成同样的恢复(以备份文件 2026-03-24.zip 为例):

# 进入面板备份目录,确认最新备份文件
cd /www/backup/panel
ls

# 解压备份文件
unzip ./2026-03-24.zip

# 覆盖恢复 db 文件(-f 表示强制覆盖,不提示)
cp -f ./2026-03-24/data/db/site.db /www/server/panel/data/db/
cp -f ./2026-03-24/data/db/database.db /www/server/panel/data/db/

# 重启面板
bt restart

方案二:手动重新录入(没有备份时)

如果没有面板备份文件,且网站、数据库数量较少,可以手动把列表重新录回面板:

  1. 恢复网站:在面板中重新创建网站,填写原有域名,选择原有网站根目录,其余选项保持默认,点【确定】即可把网站信息写回数据库。
  2. 恢复数据库:进入【数据库】页面,点【同步数据库】,从服务器把现有数据库信息同步回面板。

这种方式仅适用于无备份、且网站和数据库数量较少的情况,平时还是建议做好面板备份。

怎么防止再犯:别关面板备份

面板备份可以通过 bt 18 命令开启或关闭。官方不建议关闭面板备份——网站列表、数据库列表等显示数据都依赖 db 文件,一旦数据丢失,只能通过备份文件恢复。保持备份开启,出问题时从备份恢复就是几分钟的事。

一句话总结

宝塔面板网站列表、数据库列表不显示,本质是 /www/server/panel/data/db 下的 site.db 和 database.db 数据丢失或损坏,服务本身无恙。有备份就解压前一天的备份、复制覆盖这两个 db 文件并重启面板;没备份就重新创建网站、点【同步数据库】重新录入。平时保持面板备份开启,能省掉这类麻烦。

信息来源

本文步骤与说明以宝塔官方文档为准:《宝塔面板网站、数据库列表不显示问题恢复》。

常见问题

宝塔面板网站列表、数据库列表突然不显示了,网站还能正常打开吗?

能。列表不显示通常只是面板用于存储列表数据的 SQLite 文件(site.db、database.db)被清空或损坏,网站和数据库服务本身不受影响,仍可正常访问和连接。

为什么列表不显示,但网站还能正常访问?

因为面板的网站和数据库列表数据单独存放在 /www/server/panel/data/db 目录下的 site.db 和 database.db 两个 SQLite 文件中,而网站和数据库服务由 Nginx、MySQL 等独立进程运行,两者互不影响。db 文件数据丢失后列表空白,服务照常运行。

怎么从面板备份恢复 site.db 和 database.db?

在文件管理器解压 /www/backup/panel 下前一天的备份压缩包,进入解压目录的 data/db 文件夹,复制 site.db 和 database.db 两个文件,粘贴覆盖到 /www/server/panel/data/db 目录,最后重启面板即可。

没有面板备份,列表还能恢复吗?

能,但只适合网站和数据库数量较少的情况:恢复网站可在面板重新创建网站、填写原有域名和网站根目录;恢复数据库可进【数据库】页面点【同步数据库】,从服务器把现有数据库同步回面板。

怎么防止以后再出现列表不显示?

保持面板备份开启。可用 bt 18 命令开启或关闭面板备份,官方不建议关闭面板备份,因为网站列表、数据库列表等显示数据都依赖 db 文件,一旦丢失只能靠备份恢复。