Сайт Drupal в автономном режиме: соединение отказано

У меня есть местный экземпляр Drupal 6, который вчера работал просто отлично. Сегодня, однако, я пытаюсь посетить свой сайт, давайте назовем его http://testsite.local/. На каждой странице, включая http://testsite.local/user, я получаю эту ошибку:

Сайт в автономном режиме Сайт в настоящее время недоступен из-за технических проблем. Пожалуйста, попробуйте позже. Спасибо за Ваше понимание.

Если вы являетесь владельцем этого сайта, проверьте настройки базы данных в файле 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';

Я не могу понять, что не так. Пожалуйста помоги!

3 ответа

Решение

Вы должны перепроверить, что ваш сервер действительно использует это settings.php файл.

Ты можешь использовать find или же locate если вы работаете в среде Linux.

Вы также можете попробовать переименовать / переместить файл конфигурации в другое место и посмотреть, изменяется ли сообщение об ошибке.

Этот тип ошибки, скорее всего, неверная конфигурация.

Проверьте под sites каталог. Распространенной причиной этого может быть структура каталогов, которая должна выглядеть следующим образом:

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

Но это было проверено в SCCS braindead (и обратно через клиент braindead), так что он рассматривал символическую ссылку как другой каталог, так что теперь у вас есть:

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

И, конечно, вы, вероятно, только меняете default/settings.php, поскольку это единственное разумное изменение, когда вы не используете мультисайт. Тем не менее, реальное решение здесь состоит не в том, чтобы исправить другой файл settings.php или восстановить символическую ссылку, а вместо этого просто удалить "somedomain.com"; это ничего не добавляет к вашей конфигурации.

Я видел это еще одним способом: очень, очень большой (500 строк или около того) settings.php на самом деле имел два $db_urlв этом. Второй, конечно, "победил". Поговорите о вещах, которые вы не думаете искать!

Попробуйте : "mysqladmin flush-hosts". Также проверьте ваши пользовательские привилегии mysql. Может быть, вы не разрешаете доступ к этой базе данных? Также проверьте firewalss между этими серверами.

Другие вопросы по тегам