Как изменить код ответа при мертвом MYSQL

(Ответов: 4, Просмотров: 1246)
  1. Новичок
    • Регистрация: 02.04.2013
    • Сообщений: 3
    • Репутация: 0
    Столкнулся с такой ерундой, сайт лег на пол часа из за того что MYSQL лег, я благополучно восстановил все, но в тот момент когда сервер лежал, на страницах было

    "There seems to be a problem with the MySQL server,sorry for the inconvenience.

    We should be back shortly."

    и яндекс благополучно скушал страницу именно в этот момент, при том страница отдала "200 ОК", и страница эта в выдачу попала, в итоге куча жирных запросов в этом апе рубануло и в сниппете сейчас "There seems to be a problem with the MySQL server,sorry for the inconvenience. We should be back shortly."

    Подскажите пожалуйста можно ли где то поправить чтобы если вдруг еще раз база ляжет сервер отдавал не 200 код, а другой какой нибудь при мертвой базе?
    • 0
  2. Опытный Аватар для WSairus
    • Регистрация: 25.01.2013
    • Сообщений: 334
    • Репутация: 71
    Вообще, в случае проблем на сервере ошибка должна быть 5xx: Server Error (ошибка сервера). Например: 500 Internal Server Error. Это в Вашей CMS нужно копаться - код обработки подключения к SQL. Наугад врядли кто скажет.
    • 1

    Спасибо сказали:

    boav(19.08.2014),
  3. Новичок
    • Регистрация: 02.04.2013
    • Сообщений: 3
    • Репутация: 0
    WSairus, а, т.е. это в cms проблема, я думал это сервер сам выдает из каких то своих источников, попробую поискать!

    Спасибо! нашел!

    Итак давайте меня проверим, а то базу ложить чтобы проверять не хочется)
    Было:
    PHP код:
    if (!$db->db_connect_id)
    die(
    "<br /><br /><center><img src=\"images/logo.gif\"><br /><br /><b>There seems to be a problem with the MySQL server,sorry for the inconvenience.<br /><br />We should be back shortly.</center></b>"); 

    Стало:
    PHP код:
    if (!$db->db_connect_id)
    {
    header("HTTP/1.1 500 Internal Server Error");
    die(
    "<br /><br /><center><img src=\"images/logo.gif\"><br /><br /><b>There seems to be a problem with the MySQL server,sorry for the inconvenience.<br /><br />We should be back shortly.</center></b>");

    Все ведь правильно сделал?
    Последний раз редактировалось boav; 19.08.2014 в 23:37.
    • 0
  4. Опытный Аватар для WSairus
    • Регистрация: 25.01.2013
    • Сообщений: 334
    • Репутация: 71
    Да, вроде все верно - теперь должна отдаваться 500 ошибка (временные проблемы на сервере). Проверить можно намного проще - в настройках CMS временно изменить имя пользователя или пароль для доступа к базе (циферку на конце дописать) на неверный и проверьте код ответа (например веб инструментами браузера). Только не забудьте назад все вернуть
    • 1

    Спасибо сказали:

    boav(20.08.2014),
  5. Дипломник
    • Регистрация: 27.06.2013
    • Сообщений: 117
    • Репутация: 17
    Я в таком случае редирекчу на гугл-кеш для неавторизованных, для авторизованных - ошибка. Обычно проблемы временные, на несколько часов.
    • 1

    Спасибо сказали:

    boav(20.08.2014),

Похожие темы

Темы Раздел Ответов Последний пост
подскажите сервис массовой проверки ответа сервера
Вопросы от новичков 1 05.10.2013 16:32
Нет ответа с службы поддержки Яндекса
Yandex 13 07.08.2013 05:40
изменить тип поля в MYSQL
Web программирование 9 13.01.2013 22:06
Скрипт комментариев CommentIt Ajax (Mysql + Без mysql)
Софт, скрипты, лицензии 0 01.07.2012 00:59

У кого попросить инвайт?

Вы можете попросить инвайт у любого модератора:

Информеры