Не получается зайти в админку WordPress

При входе в админку происходит редирект на ту же страницу входа.

Эта статья для вас, если вы попробовали все стандарные решения из интернета типа:

  • Сробсить кэш браузера
  • Выключить плагины
  • Заменить файл .htaccess на оригинальный
  • Заменить папки wp-admin и wp-includes на рабочие из дистрибутива WordPress

Я приведу неочевидный кейс, который иногда случается.

Иногда в базе данных при обновлении пропадает поле AUTO_INCREMENT у некоторых таблиц.

Этот параметр отвечает за то, чтобы следить за уникальностью значений в каких-либо столбцах таблицы.

Например, если поле с *_id должно быть уникальным, то при вставке строки в таблицу, AUTO_INCREMENT будет присваивать ему следующее свободное числовое значение.

Таким образом, если AUTO_INCREMENT отключен, то присвоится, например, 1. Если в столбце, который должен иметь уникальные значения, появятся две строки со значением 1, то будет ошибка и строка не вставится.

Что происходит при этой ошибке:

  1. При логине, создается новая сессия со своим id
  2. В таблице wp_usermeta создается новая строка с идентификатором сессии
  3. Если в поле umeta_id нет параметра AUTO_INCREMENT, то будет ошибка
  4. id сессии не будет создан и не запишется в куки браузера
  5. WordPress проверит, что он пустой и переотправит вас снова на страницу логина

Решение проблемы со входом в админку

Желательно перед любыми манипуляциями с базой данных, делать бэкап.

1. Заходим в phpMyAdmin в панели управления вашим хостингом

2. В базе данных среди таблиц вы найдете wp_usermeta

wordpress wp_usermeta

3. Заходите в эту таблицу и нажимаете "Структура"

4. Нажимаете редактировать umeta_id

5. Должна стоять галочка в параметре A_I

wordpress auto_increment

6. Если вы вернетесь в структуру таблицы, то там это будет выглядеть так

wordpress auto_increment

7. Убедитесь, что у вас нет строк с umeta_id = 0. Если такая строка есть, удалите её.

8. Попробуйте залогиниться. Проблема должна исчезнуть

Перейти к верхней панели