MODX Revo не пускает в админку после сбоя повлекшего поломку таблицы modx_session. Исправляем
На днях случился трабл с сервером базы данных одного из клиентских сайтов на хостинге. Через 30 мин. работа сервера и соответственно сайта была востановлена. Но, как оказалось не полностью - MODX Revo перестал пускать в админку, кроме того не работали фильтры на сайте (msearch2 для minishop2).
Симптомы:
- При вводе неправильного логина или пароля, он сообщает, что логин/пароль не верный;
- При вводе правильного логина/пароля страница перегружалась и снова показывалась форма ввода логина/пароля;
- При попытке восстановить пароль через «Забыли пароль», он высылает новый пароль, но при вводе нового пароля, ситуация в п.2 повторяется.
При попытке зайти в таблицу с сессиями через phpMyAdmin (modx_session
), получал ошибку 414 с сообщением типа: «таблица поломана, автоматически востановить таблицу не представилось возможным». Поскольку, насколько мне известно данная таблица отвечает за обычное сохранение сессий пользователей и никакой прочей важной информации не содержит - все, чем рескует обычный пользователь это, то что заново прийдется залогинится было принято решение не заморачиваться и просто вернуть данную таблицу в исходное состояние.
Сделать это можно в том же phpMyAdmin зайдя на вкладку SQL и в поле запроса прописать следующее:
DROP TABLE IF EXISTS `modx_session`;
CREATE TABLE IF NOT EXISTS `modx_session` (
`id` varchar(255) NOT NULL DEFAULT '',
`access` int(20) unsigned NOT NULL,
`data` mediumtext,
PRIMARY KEY (`id`),
KEY `access` (`access`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Вышеуказанная команда изначально удалит старую поломанную таблицу modx_session
после чего создаст новую с первоначальными параметрами.
После этого работоспособность сайта было полностью востановленно: доступ в админку заработал, фильтры и прочие функции сайта завязанные на сессиях также пришли в рабочее состояние.
Вот и все. Надеюсь, кому-нибудь пригодится.