Восстановление анонимного пользователя в Drupal (uid = 0)

Тэги: 

Бывает, что после некоторых действий, в друпале начинают возникать ошибки, по типу этих:
"Could not login with user ID #0." (ошибка в Drush)
"warning: Invalid argument supplied for foreach() in /includes/form.inc on line 1181."

и др.

А значит это, что у нас в таблице юзеров накрылся пользователь с uid = 0, тот, который аноним.

Лечится это довольно просто. Достаточно выполнить в БД следующие запросы:

Drupal 7:

  1. insert into users (name, pass, mail, theme, signature, language, init, timezone) values ('', '', '', '', '', '', '', '');
  2. update users set uid = 0 where name = '';

Drupal 6:

  1. SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
  2. INSERT INTO `users` (`uid`, `name`, `pass`, `mail`, `mode`, `sort`, `threshold`, `theme`, `signature`, `created`, `access`, `login`, `status`, `timezone`, `language`, `picture`, `init`, `data`, `timezone_name`, `signature_format`)
  3. VALUES ('0', '', '', '', 0, 0, 0, '', '', 0, 0, 0, 0, NULL, '', '', '', NULL, '', 2);