У меня есть локальный экземпляр 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. Может быть, вы не разрешаете доступ к этой базе данных? Также проверьте бревна между этими серверами.