织梦CMS数据库连接失败怎么办?

99ANYc3cd6
预计阅读时长 14 分钟
位置: 首页 织梦建站 正文

核心配置文件

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

织梦cms 数据库连接
(图片来源网络,侵删)

/data/common.inc.php

这个文件是织梦系统的核心配置文件,包含了数据库连接、网站路径、系统密钥等关键信息。请务必保护好此文件,不要随意修改或赋予过高的权限。


如何修改数据库连接信息?

当你需要安装织梦、迁移网站或者修改数据库密码时,就需要编辑这个文件,以下是文件中与数据库连接相关的关键参数及其说明。

示例

打开 data/common.inc.php 文件,你会看到类似下面的代码(为了清晰,我添加了注释):

织梦cms 数据库连接
(图片来源网络,侵删)
<?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 = '/';             // 网站在服务器上的目录路径
// ... 等等
?>

参数详解

  1. $cfg_dbhost (数据库主机地址)

    • 说明:指定数据库服务器的地址。
    • 常见值
      • localhost:最常见的情况,表示数据库和网站程序在同一个服务器上。
      • 0.0.1:与 localhost 等效。
      • IP地址:如果数据库在另一台服务器上,需要填写该服务器的IP地址,168.1.100
      • 域名:如果数据库服务器有域名,也可以填写域名,db.yourdomain.com
  2. $cfg_dbname (数据库名)

    • 说明:你的网站数据所存放的数据库的名称,这个名称是在你的MySQL/MariaDB服务器上创建的。
    • 如何获取:登录你的数据库管理工具(如phpMyAdmin),在服务器列表中可以看到所有数据库名称。
  3. $cfg_dbuser (数据库用户名)

    • 说明:用于连接数据库的用户名。
    • 最佳实践:为了安全,不要使用 root 这个超级管理员账号来运行网站,应该在数据库中为织梦创建一个独立的、权限有限的用户。
  4. $cfg_dbpwd (数据库密码)

    织梦cms 数据库连接
    (图片来源网络,侵删)
    • 说明:对应 $cfg_dbuser 的数据库密码。
    • 注意:这是一个明文密码,请确保服务器安全,并设置一个复杂的密码。
  5. $cfg_dbprefix (数据库表前缀)

    • 说明:织梦在数据库中创建的所有表名都会以此前缀开头,如果前缀是 dede_,那么文章表就是 dede_archives,栏目表就是 dede_arctype
    • 重要用途
      • 安全性:使用独特的表前缀(如 myweb_ 而不是默认的 dede_)可以有效防止SQL注入攻击。
      • 多站点共存:如果要在同一个数据库中安装多个织梦网站,只需设置不同的表前缀即可。
  6. $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 文件。

解决方案

  1. 检查文件:确认 /data/common.inc.php 文件存在。
  2. 核对信息:仔细检查 common.inc.php 中的数据库主机、用户名、密码、数据库名是否与你的数据库信息完全一致,一个字符都不能错。
  3. 检查权限
    • 对于Linux服务器,data 目录的权限通常设置为 755common.inc.php 文件的权限通常设置为 644
    • 重要:如果权限过高(如 777),可能会带来安全风险。
  4. 检查数据库用户权限:登录phpMyAdmin,选择对应的数据库,点击“权限”选项卡,确认你的用户是否有“数据”、“结构”、“管理”等全部权限。
  5. 检查数据库服务:联系你的主机服务商,确认数据库服务是否正常运行。

网站乱码

原因分析

  • 数据库的字符集($cfg_db_language)、数据表的字符集、网站程序的字符集三者不一致。
  • 最常见的情况是数据库是 utf8mb4(新版MySQL推荐),但配置文件里写的是 gbk

解决方案

  1. 统一字符集:将 common.inc.php 中的 $cfg_db_language 修改为 utf8
  2. 修改数据库字符集:如果数据库或表不是 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,数据库连接信息是在安装向导的第三步“安装配置”中填写的。

  1. 运行 /install/index.php
  2. 在“数据库设置”页面,输入你的数据库信息。
  3. 填写完成后,安装程序会自动将这些信息写入到 /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的数据库连接问题了。

-- 展开阅读全文 --
头像
C语言字符串如何判断是否在另一个字符串中?
« 上一篇 02-15
dede 判断用户是否登录
下一篇 » 02-15
取消
微信二维码
支付宝二维码

目录[+]