第一步:检查最常见的原因(90%的问题出在这里)
最常见的原因是 数据库连接信息配置错误,请检查你的 /data/common.inc.php 文件。

(图片来源网络,侵删)
-
找到配置文件: 这个文件位于你的 DedeCMS 安装目录的
data文件夹下,文件名为common.inc.php。/public_html/data/common.inc.php。 -
打开文件并检查以下变量: 用文本编辑器(如 Notepad++, VS Code, 或直接通过服务器的文件管理器)打开这个文件,找到以下几行代码:
//数据库连接信息 $cfg_dbhost = 'localhost'; // 数据库主机 $cfg_dbname = '你的数据库名'; // 数据库名称 $cfg_dbuser = '你的数据库用户名'; // 数据库用户名 $cfg_dbpwd = '你的数据库密码'; // 数据库密码 $cfg_dbprefix = 'dede_'; // 数据库表前缀 $cfg_db_language = 'gbk'; // 数据库语言版本
-
逐一核对信息:
$cfg_dbhost(数据库主机):- 99%的情况下是
localhost,请保持默认值。 - 如果你的虚拟主机或云服务商指定了其他地址(如
mysql.yourhost.com),请填写他们提供的地址。
- 99%的情况下是
$cfg_dbname(数据库名称):- 检查是否正确,这个名称是你自己创建数据库时填写的,
my_website_data,确保大小写和拼写完全正确。
- 检查是否正确,这个名称是你自己创建数据库时填写的,
$cfg_dbuser(数据库用户名):- 检查是否正确,这是你为数据库创建的用户名,
user_mywebsite,同样确保大小写和拼写正确。
- 检查是否正确,这是你为数据库创建的用户名,
$cfg_dbpwd(数据库密码):- 这是最容易出错的地方! 请仔细核对密码,注意:
- 密码是否包含特殊字符(如 , , , )?有时这些字符在配置文件中可能需要转义,但最好先尝试使用原密码。
- 密码是否前后有多余的空格?请复制时确保没有带入空格。
- 如果你最近修改过数据库密码,这里也必须同步修改。
- 这是最容易出错的地方! 请仔细核对密码,注意:
如果以上信息都确认无误,但问题依旧,请进行第二步。

(图片来源网络,侵删)
第二步:检查数据库服务状态
即使你的配置信息正确,如果数据库服务本身没有运行,DedeCMS 也无法连接。
-
通过虚拟主机控制面板检查:
- 登录你的虚拟主机控制面板(如 cPanel, Plesk, 宝塔面板等)。
- 找到“数据库”或“MySQL”管理模块。
- 你应该能看到你创建的数据库和用户列表。
- 尝试使用控制面板自带的数据库管理工具(如 phpMyAdmin)登录数据库。
- 如果登录成功:说明数据库服务是正常的,问题可能出在第一步的配置文件或DedeCMS的权限上,请返回第一步再仔细核对配置文件。
- 如果登录失败:说明数据库账户或密码错误,或者数据库服务有问题,请确认你的用户名和密码是否正确,如果都正确,请联系你的主机服务商。
-
通过服务器命令行检查 (如果你有SSH权限):
- 连接到你的服务器。
- 执行命令检查 MySQL 服务状态:
- CentOS / RHEL 系统:
systemctl status mysqld或service mysqld status - Ubuntu / Debian 系统:
systemctl status mysql或service mysql status
- CentOS / RHEL 系统:
- 如果显示
active (running),说明服务正在运行,如果不是,尝试重启服务:systemctl restart mysqld或systemctl restart mysql。
第三步:检查数据库用户权限
数据库用户存在,密码也对,但权限不足,导致无法连接。

(图片来源网络,侵删)
-
登录 phpMyAdmin: 在虚拟主机控制面板中找到 phpMyAdmin 并登录。
-
检查用户权限:
- 在 phpMyAdmin 的主界面,点击顶部的“用户账户”选项卡。
- 在“用户账户”列表中,找到你正在使用的那个数据库用户(
user_mywebsite)。 - 点击“编辑权限”按钮。
- 在权限页面,确保该用户对 第一步中确认的数据库名 (
$cfg_dbname) 拥有 “所有权限” 或至少包含 “数据”、“结构”、“管理” 等核心权限。
特别注意:有些主机服务商为了安全,默认会给用户只授予特定数据库的权限,请确保你的用户名和数据库是正确关联的,并且权限足够。
第四步:检查服务器防火墙和端口
如果数据库主机不是 localhost(例如是远程数据库服务器),那么需要确保服务器的防火墙允许3306端口(MySQL默认端口)的访问。
- 对于云服务器 (如阿里云, 腾讯云, AWS):
登录云服务商的控制台,找到“安全组”或“防火墙”规则。
- 入站规则:确保有一条规则允许 TCP 协议,端口为
3306,来源IP为你的DedeCMS网站服务器的IP地址。
- 入站规则:确保有一条规则允许 TCP 协议,端口为
- 对于物理机或VPS:
- CentOS / RHEL:
firewall-cmd --list-ports查看开放端口,firewall-cmd --permanent --add-port=3306/tcp添加规则,firewall-cmd --reload重新加载。 - Ubuntu / Debian: 使用
ufw或iptables命令进行管理。
- CentOS / RHEL:
第五步:检查 DedeCMS 文件权限
这是一个比较少见但可能的原因,/data 目录及其下的文件权限不正确,导致 Web 服务器(如 Apache/Nginx)无法读取 common.inc.php 文件。
- 确保
/data目录可写:Web 服务器用户(通常是www-data,nginx,apache)需要对这个目录有读写权限。 - 确保
common.inc.php文件可读:Web 服务器用户至少需要有读取这个文件的权限。 - 宝塔面板用户:可以直接在“文件”管理中,右键点击
/data目录和common.inc.php文件,修改所有者为www,权限设置为755(目录)和644(文件)。
第六步:检查数据库是否已满
如果你的数据库空间已用完,新的连接请求可能会被拒绝。
- 登录 phpMyAdmin,查看左侧的数据库列表,找到你的数据库名。
- 在数据库概览页面,通常会有一个“空间使用情况”或类似的统计,可以看到已用空间和总空间。
总结与行动清单
当你遇到“Dede连不上服务器数据库”的问题时,请按以下顺序操作:
- 首要任务:检查
/data/common.inc.php文件中的 数据库名、用户名、密码 是否100%正确。 - 验证服务:尝试用 phpMyAdmin 登录数据库,验证账户密码和数据库服务是否正常。
- 检查权限:在 phpMyAdmin 中确认数据库用户对指定数据库的 权限是否足够。
- 联系服务商:如果以上步骤都无法解决,特别是当你无法登录 phpMyAdmin 时,请立即联系你的 虚拟主机或云服务器服务商,并提供错误信息(如
Can't connect to MySQL server on 'localhost' (10061)),他们可以帮你检查底层的服务状态。
按照这个流程,绝大多数数据库连接问题都能被顺利解决,祝你成功!
