Hostinger“建立数据库连接时出错”修复教程
本教程介绍如何修复 Hostinger 上 Joomla、OpenCart 及其他 CMS 平台的“建立数据库连接时出错”(Error establishing a database connection)问题。此错误——或类似错误如“Access denied for user”(拒绝用户访问)——通常是由于数据库凭据与网站配置文件不匹配造成的。
开始之前
- 如果你不确定这是数据库问题还是其他问题,请参阅如何识别并修复 Hostinger 上的网站错误。
建立数据库连接错误(“Error establishing a database connection”、“Access denied for user”或类似错误)通常可归结为以下几点:
第 1 步 — 检查当前的数据库参数
在 Websites(网站)部分,点击相应网站旁边的 Dashboard(控制面板),然后搜索 Databases(数据库),再进入 Management(管理):

查看 List of Current MySQL Databases And Users(当前 MySQL 数据库和用户列表),你会在其中找到你的数据库凭据:

将这些信息复制到一个 TXT 文件中,或者让浏览器中的数据库标签页保持打开状态,因为下一步你会用到这些信息。
如果你不确定数据库的密码,可以按照以下指南更改密码:如何更改数据库密码。
第 2 步 — 打开配置文件
在 Websites(网站)部分,点击相应网站旁边的 Dashboard(控制面板),然后搜索 File Manager(文件管理器):

选择访问该特定网站的文件,打开 public_html 文件夹,并在其中查找网站的**配置文件**。
第 3 步 — 核对凭据
在配置文件中,找到连接网站与数据库的字段,并输入正确的数据。请展开与你所用 CMS 对应的章节查看具体说明:
OpenCart
打开你域名 public_html 文件夹中的 config.php 文件。你需要按如下方式填写与数据库对应的值:
- DB_USERNAME — 数据库用户名
- DB_PASSWORD — 数据库密码
- DB_DATABASE — 数据库名称
填写结果应类似于下图:

OpenCart 还有另一个 config.php 配置文件,位于 /public_html/admin/ 目录中。请打开它,并输入与 /public_html/config.php 中相同的信息。
Joomla
打开你域名 public_html 文件夹中的 configuration.php 文件。在这里,你需要按如下方式填写与数据库对应的值:
- public $ user = 数据库用户名
- public $ password = 数据库密码
- public $ db = 数据库名称
填写结果应类似于下图:

请务必不要添加任何多余的空格或删除任何现有符号,以避免网站出错。
PrestaShop
打开你域名 public_html/app/config 文件夹中的 parameters.php 文件。在这里,你需要按如下方式填写与数据库对应的值:
- ‘database_name’ => 数据库名称
- ‘database_user’ => 数据库用户名
- ‘database_password’ => 数据库密码
填写结果应类似于下图:

Moodle
打开你域名 public_html 文件夹中的 config.php 文件。在这里,你需要按如下方式填写与数据库对应的值:
- $CFG->dbname = 数据库名称
- $CFG->dbuser = 数据库用户名
- $CFG->dbpass = 数据库密码
填写结果应类似于下图:

WordPress
如果你使用的是 WordPress,可以参考这篇专门的教程:WordPress 建立数据库连接时出错
设置好新值后,保存更改,并使用无痕浏览模式打开你的网站。
注意事项
- 某些 CMS 还有一个额外的表前缀变量。为确保网站配置文件中的值与实际前缀一致,请**通过 phpMyAdmin 打开数据库**并查看表的名称。前缀是一小段字母加下划线,例如 xhfv_
- 虽然 MySQL 的默认主机名是 localhost,但某些 CMS 使用 mysql 或 127.0.0.1。我们建议你保留 CMS 中使用的默认值。
如果错误仍然存在
如果在仔细核对数据库凭据并**清除缓存后错误仍然存在,通常意味着你为数据库设置的密码**与配置文件中输入的密码不一致。
要解决此问题,请打开配置文件并复制当前的密码,注意不要复制到相邻的符号。接着,设置数据库密码,将从配置文件中复制的密码粘贴为新的密码值即可。
大功告成!你的网站现在应该可以正常运行,不会再出现数据库错误了。