duplicate entry в таблице users после переезда на 6-ку

Главные вкладки

Аватар пользователя Valeratal Valeratal 11 января 2009 в 23:59

Подскажите пожалуйста
после переезда на 6-ку, вижу в логах это

duplicate entry '0' for key 1 query: INSERT INTO users (name, mail, timezone, pass, init, status, created) VALUES ('Снежана Николаевна', 'snowan@yandex.ru', 10800, 'fcf87b64374e659e63222782074d212b', 'snowan@yandex.ru', 1, 1231706742) в файле /var/www/vhosts/hr-portal.ru/httpdocs/modules/user/user.module в строке 325.

А при попытке зарегистрироваться, выдается

Ошибка сохранения учетной записи.

Подскажите, что это за дубль в таблице users
и что с ним делать?

Комментарии

Аватар пользователя gorr gorr 12 января 2009 в 12:16

Там при бекапе базы нулевой пользователь не может быть создан, так как uid аутоинкрементное поле, мускул обрабатывает по разному эту ситуацию, в зависимости от версии, в данном случае он вместо того, чтобы создать нулевого пользователя создает первого, а потом первого - следующая строчка из бекапа уже не может создать. Поэтому надо вырезать из бекапа строчку с инсертом нулевого пользователя и загрузить базу, а потом отдельно создать нулевого пользователя, зачем он нужен можно посмотреть в этой теме:
http://drupal.ru/node/23183

Аватар пользователя Valeratal Valeratal 12 января 2009 в 21:20

спасибо. Действительно, какой то был глюк, когда я пытался залить дамп. И нулевым пользователем был какой то живой человек

В данный момент, нулевой пользователя есть. Однако, все равно не получается никого зарегистрировать

Аватар пользователя Valeratal Valeratal 12 января 2009 в 22:32

да, посмотрел в другом сайте, там 6-ка изначально
действительно, должен быть AUTO_INCREMENT
а у меня нет

Пытаюсь добавить
получаюю ответ
ALTER TABLE `users` CHANGE `uid` `uid` INT( 10 ) UNSIGNED NOT NULL AUTO_INCREMENT

Ответ MySQL:

#1062 - Duplicate entry '1' for key 1

Аватар пользователя Valeratal Valeratal 13 января 2009 в 0:37

кажется получилось
сделал так
создал копию этой таблицы, назвал ее users2
удалил таблицу users
из таблицы users2 скопировал в таблицу users только структуру (ну и естественно заново создал эту таблицу)
в таблице users выставил AUTO_INCREMENT
скопировал только данные из users2 в users