Drupal

Drupal 站點離線:連接被拒絕

  • May 14, 2011

我有一個昨天執行良好的本地 Drupal 6 實例。不過,今天我嘗試訪問我的網站,我們稱它為http://testsite.local>。在每個頁面上,包括<http://testsite.local/user,我都會收到此錯誤:

網站離線 由於技術問題,該網站目前無法使用。請稍後再試。感謝您的理解。

如果您是本網站的維護者,請檢查 settings.php 文件中的數據庫設置,並確保您的託管服務提供商的數據庫伺服器正在執行。如需更多幫助,請參閱手冊,或聯繫您的託管服務提供商。

請注意,這裡沒有 MySQL 錯誤。我只能找到一頁沒有此錯誤:http://testsite.local/install.php。該頁面確實包含一條錯誤消息:

無法連接到您的 MySQL 數據庫伺服器。MySQL 報告以下消息:Connection denied

  • 你確定你有正確的使用者名和密碼嗎?
  • 您確定您輸入了正確的數據庫主機名嗎?
  • 您確定數據庫伺服器正在執行嗎?

如需更多幫助,請參閱安裝和升級手冊。如果您不確定這些術語的含義,您可能應該聯繫您的託管服務提供商。

但是,我的其他本地站點在同一個數據庫上執行得很好,我可以使用命令行連接到數據庫。我很確定我也有正確的權限,因為過去一切正常:

$ 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&gt; 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';

我不知道出了什麼問題。請幫忙!

您需要仔細檢查您的伺服器是否確實在使用此settings.php文件。

您可以使用find或者locate如果您在 Linux 環境中工作。

您還可以嘗試將配置文件重命名/移動到另一個位置,並查看錯誤消息是否更改。

這種類型的錯誤很可能是配置錯誤。

檢查sites目錄下。造成這種情況的一個常見原因可能是一個應該如下所示的目錄結構:

sites/
     default/
             settings.php
     somedomain.com -&gt; default

但這被檢查到了一個braindead SCCS(並通過一個braindead客戶端進出),因此它將符號連結視為另一個目錄,所以現在你有:

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

而且,當然,您可能只是在更改default/settings.php,因為當您不執行多站點時,這是唯一合理的更改。也就是說,這裡真正的解決方案不是修復其他 settings.php 或修復符號連結,而是簡單地刪除“somedomain.com”;它不會在您的配置中添加任何內容。

我看到這種情況發生的另一種方式:一個非常非常大(500 行左右)的 settings.php 實際上有兩個 $db_urls。第二個當然是“贏了”。談論你不認為要尋找的東西!

引用自:https://serverfault.com/questions/269540