- 核心关系:DedeCMS 是什么?
- 数据库作用:MySQL 在 DedeCMS 中扮演什么角色?
- 关键数据表详解:MySQL 中有哪些重要的表?
- 常用数据库操作:如何管理和维护 DedeCMS 的数据库?
- 常见问题与解决方案
核心关系:DedeCMS 是什么?
DedeCMS (织梦内容管理系统) 是一个基于 PHP 语言和 MySQL 数据库的开源网站管理系统,它的核心功能是帮助用户快速搭建和管理网站,尤其是内容型网站,如新闻门户、企业官网、博客、论坛等。

(图片来源网络,侵删)
您可以这样理解它们的关系:
- DedeCMS (程序):就像是人的身体和大脑,负责处理所有的逻辑、展示界面、接收用户操作。
- MySQL 数据库:就像是人的记忆和知识库,负责存储所有的数据,比如文章内容、会员信息、网站配置、栏目分类等。
没有 MySQL,DedeCMS 程序就无法运行,因为它不知道要显示什么内容,也不知道用户提交的信息该存到哪里,反之,只有数据库而没有 DedeCMS 程序,这些数据就是一堆无意义的二进制文件,无法被访问和展示。
数据库作用:MySQL 在 DedeCMS 中扮演什么角色?
MySQL 数据库是 DedeCMS 的数据核心,主要存储以下几类信息:
- 数据:这是最重要的部分,包括所有发布的文章、图集、软件、商品等。
- 栏目与分类数据:网站的栏目结构(如“首页”、“新闻中心”、“产品展示”等)都存储在数据库中。
- 会员与用户数据:所有注册会员的信息、管理员账号和权限等。
- 系统配置数据:网站的基本设置,如网站名称、网站版权、网站路径、模板风格等。
- 模型与字段数据:DedeCMS 的强大之处在于其自定义模型功能,不同的内容类型(如文章、图集)有不同的字段(如标题、作者、图片),这些都由数据库定义和存储。
- 附件与多媒体数据:除了文件本身通常存储在服务器目录中外,文件的路径、标题、描述等信息也记录在数据库中。
关键数据表详解(默认前缀 dede_)
DedeCMS 安装时会创建一系列以 dede_ 为前缀的数据表(安装时可以修改),了解这些核心表的结构,对于二次开发和问题排查至关重要。

(图片来源网络,侵删)
以下是几个最核心的数据表:
a. dede_archives - 文章主表
- 作用:存储所有文章的核心信息。
- 关键字段:
id:文章的唯一ID,主键。typeid:文章所属的栏目ID。title。litpic:文章缩略图路径。pubdate:发布时间。senddate:录入时间。click:点击量。ismake:是否生成静态HTML (0=否, 1=是)。arcrank:文章审核状态 (0=审核通过, -1=未审核)。
b. dede_addonarticle - 文章附加表
- 作用:存储文章的(如正文、来源、作者等),因为文章正文内容可能很长,如果和核心信息放在一张表里,查询效率会很低,所以采用“主表+附加表”的模式。
- 关键字段:
aid:与dede_archives表的id关联,是文章附加表的主键。body:文章的HTML正文内容,这是一个TEXT或MEDIUMTEXT类型的字段,可以存放大量文本。
archives 和 addonarticle 的关系:一篇文章的核心信息在 archives 表,详细内容在 addonarticle 表,通过 id 和 aid 关联起来。
c. dede_arctype - 栏目表
- 作用:存储网站所有栏目的信息。
- 关键字段:
id:栏目ID,主键。typename:栏目名称。reid:父栏目ID,用于实现栏目的无限级分类。topid:顶级栏目ID。ispart:是否是外部链接 (0=否, 1=是)。typedir:栏目目录。
d. dede_admin - 管理员表
- 作用:存储网站后台管理员的信息。
- 关键字段:
id:管理员ID。userid:管理员用户名。pwd:管理员密码(经过 MD5 加密)。usertype:用户类型(如superadmin超级管理员)。
e. dede_member - 会员表
- 作用:存储网站会员的信息。
- 关键字段:
mid:会员ID。userid:会员用户名。pwd:会员密码(MD5加密)。email:会员邮箱。
f. dede_config - 系统配置表
- 作用:存储网站的全局配置信息,这些配置通常在后台“系统基本参数”里设置。
- 关键字段:
varname:变量名。info:对应的值。
g. dede_homepageset - 首页设置表
- 作用:存储首页的特定配置,如首页模板、头条新闻、推荐内容等。
常用数据库操作
a. 数据备份与恢复
这是最重要、最频繁的操作,用于防止数据丢失。
- 备份:
- 通过 DedeCMS 后台:登录后台 -> 系统 -> 数据库备份/恢复 -> 开始备份,可以选择备份所有表或指定表。
- 通过 phpMyAdmin:登录您的 cPanel 或主机控制面板,找到 phpMyAdmin,选择对应的数据库,然后点击“导出”,选择“快速”或“自定义”,格式选“SQL”,然后执行。
- 恢复:
- 通过 DedeCMS 后台:路径与备份相同,选择“数据恢复”,上传之前备份的
.sql文件。 - 通过 phpMyAdmin:选择对应的数据库,点击“导入”,选择备份的
.sql文件,然后执行。
- 通过 DedeCMS 后台:路径与备份相同,选择“数据恢复”,上传之前备份的
b. 修改网站信息
如果需要修改网站名称、版权信息等,可以直接修改数据库。

(图片来源网络,侵删)
- 方法:通过 phpMyAdmin,找到
dede_config表,查找varname为cfg_webname(网站名称) 或cfg_powerby(版权信息) 的记录,直接修改其info字段的值。
c. 修改管理员密码
如果忘记后台密码,可以通过重置数据库来解决。
- 方法:通过 phpMyAdmin,找到
dede_admin表,找到你的管理员账号记录,将pwd字段的值修改为21232f297a57a5a743894a0e4a801fc3(这是admin这个字符串的 MD5 值),登录后请立即修改密码。
d. 修改网站路径
如果更换了域名或目录,需要批量修改数据库中的路径。
- 方法:使用 SQL 查询语句。
- 在
dede_archives表中修改redirecturl。 - 在
dede_addonarticle表中修改body字段(使用REPLACE函数批量替换旧的URL为新的URL)。 - 在
dede_arctype表中修改typedir。 - 在
dede_config表中修改相关路径配置。 - 注意:此操作风险较高,建议先备份数据库,并使用
LIKE语句谨慎测试。
- 在
常见问题与解决方案
问题1:网站打开慢,数据库查询缓慢。
- 原因:
- 数据库数据量过大,没有对关键字段建立索引。
- 网页模板中使用了过多或低效的数据库查询标签。
- 数据库服务器性能不足。
- 解决方案:
- 优化索引:确保
dede_archives表的typeid,arcrank,pubdate等字段有索引。dede_arctype表的reid等字段也应有索引。 - 优化模板:检查首页、列表页、内容页模板,减少使用
{dede:arclist}等标签的次数,合并多次查询。 - 开启数据库缓存:在 DedeCMS 后台开启“文件缓存”或“Memcached”等缓存机制。
- 优化索引:确保
问题2:后台登录提示“验证码错误”或“用户名/密码错误”,但确认无误。
- 原因:
dede_safecode或dede_login表可能存在异常,或者 session 存储有问题。 - 解决方案:
- 清除浏览器缓存和 Cookie。
- 删除 session 文件:找到服务器上存储 session 的目录(通常在
/tmp下),删除与您的网站相关的 session 文件。 - 检查数据库:登录 phpMyAdmin,清空
dede_safecode表(验证码表)和dede_login表(登录记录表)。
问题3:文章内容显示乱码。
- 原因:数据库、程序文件、网页的字符集不一致,DedeCMS 默认使用
gbk或utf-8。 - 解决方案:
- 检查字符集:确保数据库、数据表、数据字段的字符集都是统一的(推荐
utf8mb4,它支持 Emoji 表情)。 - 检查程序文件:确保 DedeCMS 程序文件本身的编码是
UTF-8 无 BOM 格式。 - 检查网页头部:确保模板文件
<head>标签内有<meta charset="utf-8">。
- 检查字符集:确保数据库、数据表、数据字段的字符集都是统一的(推荐
对于 DedeCMS MySQL 数据库不仅仅是存储数据的仓库,更是理解网站运行机制、进行高级定制和故障排查的关键,掌握基本的数据库知识,特别是对核心数据表结构的了解,将极大地提升您管理和维护 DedeCMS 网站的能力。
核心要点回顾:
- DedeCMS + MySQL = 完整的网站系统。
- 主表 (
archives) + 附加表 (addonarticle) 是文章数据存储的经典模式。 - 定期备份数据库 是网站管理的生命线。
- 通过 phpMyAdmin 可以进行几乎所有底层的数据库操作。
