Сайт 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 между этими серверами.