海洋 CMS 数据库如何单独备份导出

juming
juming 初级会员超兽战士
发布于 2026-10-08 19:43 ·1 浏览 ·0 回复

单独备份海洋 CMS 数据库,最可靠的方式是用 mysqldump 命令行导出成 SQL 文件;只要拿到数据库名、数据库用户名、密码和表前缀(海洋 CMS 默认前缀是 sea_)这四项信息,一条命令就能完整导出,不依赖后台是否可用、也不受网站版本限制。

海洋 CMS 的数据库连接信息在哪里找?

结论:海洋 CMS 的数据库配置写在 data/common.inc.php 文件里,打开它就能看到全部连接参数。

用 FTP 或宝塔面板进入网站根目录,找到 data/common.inc.php,里面通常有这几行:

$cfg_dbhost = 'localhost';   // 数据库地址
$cfg_dbname = 'seacms';      // 数据库名
$cfg_dbuser = 'root';        // 数据库用户名
$cfg_dbpwd  = '你的密码';     // 数据库密码
$cfg_dbprefix = 'sea_';      // 数据表前缀

这五行就是备份要用的全部信息。注意 $cfg_dbprefix 这一项,海洋 CMS 的数据表都带前缀,默认 sea_,常见核心表有 sea_data(影片主数据)、sea_content(影片内容)、sea_playdata(播放地址)、sea_type(分类)、sea_admin(管理员)。备份时如果只记了库名忘了前缀,还原到新库时表名对不上,网站会直接白屏。

用 mysqldump 怎么单独导出海洋 CMS 数据库?

结论:一条 mysqldump 命令即可,加上字符集和事务参数能避免乱码和锁表。

mysqldump -u 数据库用户名 -p \
  --default-character-set=utf8 \
  --single-transaction \
  --routines --triggers \
  数据库名 > seacms_$(date +%F).sql

参数说明,照着抄就行:

  • --default-character-set=utf8:指定导出编码,海洋 CMS 老版本多为 utf8,新版本可能是 utf8mb4,跟 common.inc.php 里的设置保持一致,否则中文标题和影片简介会变乱码。
  • --single-transaction:InnoDB 表下不锁表导出,网站可以边跑边备份。
  • --routines --triggers:把存储过程和触发器一起带走,虽然海洋 CMS 本身用得少,但带上不亏。
  • > seacms_2025-06-01.sql:输出到当前目录,文件名带日期方便区分。

只导结构不导数据,加 --no-data;只导数据不建表,加 --no-create-info;只备份某几张表,把表名写在库名后面,例如 mysqldump -u root -p seacms sea_data sea_content > data_only.sql。数据量大时建议直接压缩,写成 ... | gzip > seacms_$(date +%F).sql.gz,视频站的 sea_data 表动辄几 GB,压缩后能省七成空间。

没有 SSH 权限,怎么用后台或 phpMyAdmin 导出?

结论:虚拟主机用户可以走 phpMyAdmin,操作路径是「选中数据库 → 导出 → 自定义 → 格式选 SQL」。

在 phpMyAdmin 里选数据库后点顶部「导出」,选「自定义」模式,格式选 SQL,勾上「添加 DROP TABLE / VIEW / 存储过程」和「添加 CREATE TABLE」,字符集选 utf-8,点执行就会下载一个 .sql 文件。海洋 CMS 后台自身也带数据库备份入口,位置在系统管理类菜单下,不同版本菜单名可能叫「数据库」或「数据备份」,导出的是 SQL 文件或分卷文件。

需要提醒的是:后台备份对大表容易超时中断,导到一半报 504 是常事。结论:数据量超过 100 MB 时,优先用 mysqldump 或 phpMyAdmin,后台备份当辅助手段。

导出后怎么确认备份是有效的?

结论:文件体积不为 0、且能搜到 CREATE TABLE 语句,才算备份成功。

ls -lh seacms_2025-06-01.sql
grep -c "CREATE TABLE" seacms_2025-06-01.sql

第二条命令会返回建表语句的条数,海洋 CMS 标准安装通常有 20 张以上的表,条数为 0 就说明导出失败,多半是密码错或库名写错。

还原时用:

mysql -u 数据库用户名 -p 数据库名 < seacms_2025-06-01.sql

还原前要先手动建好空库,并保证编码与导出时一致。如果导入到表前缀不同的站点,先用 sed -i 's/sea_/new_/g' seacms_2025-06-01.sql 批量替换前缀,再改新站的 data/common.inc.php 里的 $cfg_dbprefix。

日常备份要固定哪几件事?

结论:把备份写成 crontab 定时任务,每天凌晨 3 点跑一次、保留 7 天,是最省心的做法。

0 3 * * * mysqldump -u root -p密码 --default-character-set=utf8 --single-transaction seacms | gzip > /backup/seacms_$(date +\%F).sql.gz

再配一条删除 7 天前旧文件的命令即可。另外注意三点:一是备份文件不要放在网站根目录下,.sql 被直接下载等于把整站数据送人;二是导出前确认磁盘剩余空间大于数据库体积的 2 倍;三是网站要迁移或升级前,先导一次完整库再动手。

一句话收束:海洋 CMS 数据库单独备份的核心就是「读 data/common.inc.php 拿连接信息 + mysqldump 指定字符集导出 + grep 验证建表语句条数」,后台备份可以补充但不能当唯一依靠。

版权声明:本文来自 GJ站长论坛《海洋 CMS 数据库如何单独备份导出》
原文链接:https://www.gj0.com/thread-1134.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。

全部回复 0

还没有回复,来抢沙发~