Назад | Перейти на главную страницу

Сайт 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';

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

Проверить под 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с в нем. Второй, конечно, «выиграл». Говорите о вещах, которые вы не думаете искать!

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

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

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

Этот тип ошибки, скорее всего, вызван неправильной конфигурацией.

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