核心配置文件
织梦CMS的数据库连接信息存储在根目录下的一个核心配置文件中:

(图片来源网络,侵删)
/data/common.inc.php
这个文件是织梦系统的核心配置文件,包含了数据库连接、网站路径、系统密钥等关键信息。请务必保护好此文件,不要随意修改或赋予过高的权限。
如何修改数据库连接信息?
当你需要安装织梦、迁移网站或者修改数据库密码时,就需要编辑这个文件,以下是文件中与数据库连接相关的关键参数及其说明。
示例
打开 data/common.inc.php 文件,你会看到类似下面的代码(为了清晰,我添加了注释):

(图片来源网络,侵删)
<?php // 数据库连接信息 $cfg_dbhost = 'localhost'; // 数据库服务器名称 $cfg_dbname = 'dedecms_v57'; // 数据库名称 $cfg_dbuser = 'root'; // 数据库用户名 $cfg_dbpwd = 'your_password'; // 数据库密码 $cfg_dbprefix = 'dede_'; // 数据库表前缀 $cfg_db_language = 'gbk'; // 数据库编码,通常为 utf8 或 gbk // 其他配置... $cfg_cookie_encode = 'abcdefg'; // Cookie加密密钥,用于后台登录等 $cfg_basehost = 'http://www.yourdomain.com'; // 网站域名 $cfg_cmspath = '/'; // 网站在服务器上的目录路径 // ... 等等 ?>
参数详解
-
$cfg_dbhost(数据库主机地址)- 说明:指定数据库服务器的地址。
- 常见值:
localhost:最常见的情况,表示数据库和网站程序在同一个服务器上。0.0.1:与localhost等效。IP地址:如果数据库在另一台服务器上,需要填写该服务器的IP地址,168.1.100。域名:如果数据库服务器有域名,也可以填写域名,db.yourdomain.com。
-
$cfg_dbname(数据库名)- 说明:你的网站数据所存放的数据库的名称,这个名称是在你的MySQL/MariaDB服务器上创建的。
- 如何获取:登录你的数据库管理工具(如phpMyAdmin),在服务器列表中可以看到所有数据库名称。
-
$cfg_dbuser(数据库用户名)- 说明:用于连接数据库的用户名。
- 最佳实践:为了安全,不要使用
root这个超级管理员账号来运行网站,应该在数据库中为织梦创建一个独立的、权限有限的用户。
-
$cfg_dbpwd(数据库密码)
(图片来源网络,侵删)- 说明:对应
$cfg_dbuser的数据库密码。 - 注意:这是一个明文密码,请确保服务器安全,并设置一个复杂的密码。
- 说明:对应
-
$cfg_dbprefix(数据库表前缀)- 说明:织梦在数据库中创建的所有表名都会以此前缀开头,如果前缀是
dede_,那么文章表就是dede_archives,栏目表就是dede_arctype。 - 重要用途:
- 安全性:使用独特的表前缀(如
myweb_而不是默认的dede_)可以有效防止SQL注入攻击。 - 多站点共存:如果要在同一个数据库中安装多个织梦网站,只需设置不同的表前缀即可。
- 安全性:使用独特的表前缀(如
- 说明:织梦在数据库中创建的所有表名都会以此前缀开头,如果前缀是
-
$cfg_db_language(数据库字符集)- 说明:指定数据库连接和操作时使用的字符集。
- 推荐值:
utf8:强烈推荐,国际通用编码,支持多语言,是现在网站开发的标准。gbk:主要用于处理简体中文,在较老的织梦版本中比较常见。
- 注意:这个值必须与你创建数据库时设置的字符集一致,否则会导致网站出现乱码。
常见问题与解决方案
数据库连接失败 (Fatal error: Call to a member function...)
这是最常见的错误,通常提示信息为 Call to a member function SetQuery() on a non-object 或类似的错误。
原因分析:
common.inc.php文件不存在或路径错误。- 数据库信息错误:
$cfg_dbhost不正确。$cfg_dbname,$cfg_dbuser,$cfg_dbpwd输入错误。- 数据库用户没有访问指定数据库的权限。
- 数据库服务器未启动。
- 网站程序所在目录的权限问题,导致Web服务器(如Apache/Nginx)无法读取
common.inc.php文件。
解决方案:
- 检查文件:确认
/data/common.inc.php文件存在。 - 核对信息:仔细检查
common.inc.php中的数据库主机、用户名、密码、数据库名是否与你的数据库信息完全一致,一个字符都不能错。 - 检查权限:
- 对于Linux服务器,
data目录的权限通常设置为755,common.inc.php文件的权限通常设置为644。 - 重要:如果权限过高(如
777),可能会带来安全风险。
- 对于Linux服务器,
- 检查数据库用户权限:登录phpMyAdmin,选择对应的数据库,点击“权限”选项卡,确认你的用户是否有“数据”、“结构”、“管理”等全部权限。
- 检查数据库服务:联系你的主机服务商,确认数据库服务是否正常运行。
网站乱码
原因分析:
- 数据库的字符集(
$cfg_db_language)、数据表的字符集、网站程序的字符集三者不一致。 - 最常见的情况是数据库是
utf8mb4(新版MySQL推荐),但配置文件里写的是gbk。
解决方案:
- 统一字符集:将
common.inc.php中的$cfg_db_language修改为utf8。 - 修改数据库字符集:如果数据库或表不是
utf8,需要使用phpMyAdmin或其他工具将其转换为utf8,转换前务必备份数据库!- 转换数据库:
ALTER DATABASEyour_db_nameCHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; - 转换表:
ALTER TABLEyour_table_nameCONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- 转换数据库:
织梦安装时的数据库连接
如果你是在全新安装织梦CMS,数据库连接信息是在安装向导的第三步“安装配置”中填写的。
- 运行
/install/index.php。 - 在“数据库设置”页面,输入你的数据库信息。
- 填写完成后,安装程序会自动将这些信息写入到
/data/common.inc.php文件中,并完成数据库的初始化。
| 步骤 | 操作 | 关键点 |
|---|---|---|
| 定位文件 | 找到网站根目录下的 /data/common.inc.php |
这是唯一需要修改的文件。 |
| 准备信息 | 从你的主机服务商或数据库管理工具(phpMyAdmin)获取以下信息: | 信息必须100%准确 |
| - 数据库主机地址 | localhost 或 IP |
|
| - 数据库名称 | dedecms_v57 |
|
| - 数据库用户名 | root 或你创建的用户 |
|
| - 数据库密码 | 你的数据库密码 | |
| - 数据库表前缀 | dede_ 或自定义 |
|
| - 数据库字符集 | utf8 (推荐) |
|
| 修改配置 | 用文本编辑器(如Notepad++, VS Code)打开 common.inc.php,修改对应的变量值。 |
保存文件时,确保编码为 UTF-8 无BOM,否则可能导致乱码。 |
| 设置权限 | 确保 data 目录和 common.inc.php 文件有正确的读写权限。 |
Linux下 data 目录 755,文件 644。 |
| 测试访问 | 重新访问你的网站,看是否正常。 | 如果出现错误,根据错误提示回到第2、3步检查。 |
你就可以轻松应对织梦CMS的数据库连接问题了。
