Drupal 站点离线:连接被拒绝

Drupal 站点离线:连接被拒绝

我有一个本地 Drupal 6 实例,昨天运行良好。但今天,我尝试访问我的网站,我们称之为http://测试站点.local. 每一页,包括http://testsite.local/用户,我收到此错误:

网站离线 由于技术问题,该网站目前无法使用。请稍后重试。感谢您的理解。

如果您是本网站的维护者,请检查 settings.php 文件中的数据库设置,并确保托管服务提供商的数据库服务器正在运行。如需更多帮助,请参阅手册或联系托管服务提供商。

请注意,这里没有 MySQL 错误。我找到的只有一个页面没有此错误:http://testsite.local/install.php。该页面确实包含一条错误消息:

无法连接到您的 MySQL 数据库服务器。MySQL 报告以下消息:连接被拒绝

  • 您确定您的用户名和密码正确吗?
  • 您确定输入了正确的数据库主机名吗?
  • 您确定数据库服务器正在运行吗?

如需更多帮助,请参阅安装和升级手册。如果您不确定这些术语的含义,您可能应该联系您的托管服务提供商。

但是,我的其他本地站点在同一个数据库上运行良好,我可以使用命令行连接到数据库。我很确定我也拥有正确的权限,因为过去一切都正常:

$ mysql --host=localhost --user=testuser --password=testpassword testdb
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 19
Server version: 5.5.11-log Source distribution

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> SHOW GRANTS FOR CURRENT_USER();
+-------------------------------------------------------------------------------------------------------------------------------------+
| Grants for testuser@localhost                                                                                                       |
+-------------------------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'testuser'@'localhost' IDENTIFIED BY PASSWORD 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'                     |
| GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, LOCK TABLES ON `testdb`.* TO 'testuser'@'localhost'               |
+-------------------------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.03 sec)

settings.php使用相同的凭据:

$db_url = 'mysqli://testuser:testpassword@localhost/testdb';

我不知道哪里出了问题。请帮忙!

答案1

您需要仔细检查您的服务器是否确实正在使用该settings.php文件。

如果您在 Linux 环境中工作,则可以使用find或。locate

您还可以尝试重命名或移动配置文件到另一个位置,看看错误消息是否改变。

此类错误很可能是配置错误。

答案2

检查目录sites。造成这种情况的一个常见原因可能是目录结构应该如下所示:

sites/
      default/
              settings.php
      somedomain.com -> default

但是它被签入到一个无脑的 SCCS(并通过无脑的客户端签出并返回),使得它将符号链接视为另一个目录,所以现在你有:

sites/
      default/
              settings.php
      somedomain.com/
              settings.php

当然,您可能只会更改default/settings.php,因为当您不运行多站点时,这是唯一合理的更改。也就是说,真实的这里的解决方案不是修复其他 settings.php 或修复符号链接,而是简单地删除“somedomain.com”;它不会向您的配置添加任何内容。

我还见过另一种情况:一个非常非常大(500 行左右)的 settings.php 实际上有 $db_url里面有。当然,第二个“赢了”。谈谈你不认为要寻找的东西!

答案3

尝试:'mysqladmin flush-hosts'。还要检查您的 mysql 用户权限。也许您不允许访问该数据库?还要检查这些服务器之间的防火墙。

相关内容