Duplicate entry

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

Аватар пользователя Dusk Dusk 28 января 2010 в 23:43

Тоже возникла проблема с Duplicate entry.

Dumper клинит на таблице search_index с ошибкой:
------------------------------------------------------------
Таблица `search_index`.
2010.01.28 21:46:28
Возникла ошибка!
Неправильный запрос.
Duplicate entry 'проблем-1-node' for key 1 (256)
------------------------------------------------------------
Если через SQL то там пишет:
------------------------------------------------------------
Ошибка

SQL-запрос:

INSERT INTO `search_index` VALUES ('центре', 1, 'node', '26.9203'), ('Центр', 1, 'node', '2'), ('Семь', 1, 'node', '2.72721'), ('птиц', 1, 'node', '2.72721'), ('основан', 1, 'node', '1'), ('целью', 1, 'node', '1'), ('создания', 1, 'node', '1'), ('психологических', 1, 'node', '3'), ('условий', 1, 'node', '1'), ('для', 1, 'node', '2.53089'), ('самораскрытия', 1, 'node', '1'), ('самосовершенствования', 1, 'node', '1'), ('самореализации', 1, 'node', '1'), ('личностного', 1, 'node', '1'), ('роста', 1, 'node', '1'), ('освобождения', 1, 'node', '1'), ('личности', 1, 'node', '1'), ('угнетающих', 1, 'node', '1'), ('подавляющих', 1, 'node', '1'), ('проблем', 1, 'node', '2'), ('Так', 1, 'node', '1'), ('способствует', 1, 'node', '2'), ('увеличению', 1, 'node', '1'), ('числа', 1, 'node', '1'), [...]

Ответ MySQL: Документация
#1062 - Duplicate entry 'D?~N€D 3/4 D±D»DµD 1/4 -1-node' for key 1
------------------------------------------------------------

Не могу понять как искать этот Duplicate entry.
Подскажите пожалуйста.

Комментарии

Аватар пользователя gerboss gerboss 29 января 2010 в 12:46

можно попробовать изменить кодировки в dumper.php, что бы при импорте он распозновал поля не как "Центр", а в нормальной кодировке. и проблема пропадет.

Аватар пользователя Dusk Dusk 30 января 2010 в 0:44

To Stutzer:
Если речь об этих, то чистил: cache, cache_block, cache_content, cache_filter, cache_form, cache_menu, cache_page, cache_update, cache_views, cache_views_data, watchdog

To gerboss:
А это где? Это? Кодировка соединения с MySQL при восстановлении.
Поставил принудительно не помогло. define('RESTORE_CHARSET', 'forced->cp1251'.

Проблема осталась, причем видимо что-то в этой таблице, так как на втором сайте с такой же конфигурацией, с тем же дампером, после обновления все ок.

MDinc, так что search_index тоже вычистить?

Аватар пользователя Dan Dan 30 января 2010 в 9:10

Если есть доступ по ssh, то:
mysql -u user -p -D database
где user - имя пользователя, database - имя БД. Спросит пароль к БД.
Если архив сжат, то:
zcat archiv.sql.gz | mysql -u user -p -D database

Аватар пользователя Dusk Dusk 31 января 2010 в 0:13

Я не очень в этом понимаю. Доступ есть, но почему то не пускает. А что это за команда?
У меня есть весь сайт на локале, да и phpMyAdmin.
И что значит пере собрать?

Аватар пользователя Dan Dan 31 января 2010 в 1:54

Пересобрать - имелось ввиду построить индекс заново.
Команды: вторая - восстановление таблицы БД из файла.

Аватар пользователя Dusk Dusk 31 января 2010 в 2:04

А найти этот дубликат никак нельзя? Сайт ведь работает, и дамп делается, вот только не восстанавливается.

Аватар пользователя gerboss gerboss 1 февраля 2010 в 13:17

дубликат идет от того, что dumper работает не с той кодировкой.
в dumper.php кодировка указывается в двух местах, в каком именно править надо для данного случая на вскидку не вспомню, но можно поэксперементировать, вариантов получается не много

Аватар пользователя Dusk Dusk 1 февраля 2010 в 23:06

Сделал CHECK TABLE, SQL написал что с таблицей все OK.
Если поставить кодировку cp1251 при создании дампа Dumper пишет, что кодировка отличается. Но такой дамп кушается, но естественно на сайте одни козявки.

Аватар пользователя Dusk Dusk 2 февраля 2010 в 14:09

А utf8 должна быть везде? В дампере 2 строки, где можно поменять.

// Кодировка соединения с MySQL
// auto - автоматический выбор (устанавливается кодировка таблицы), cp1251 - windows-1251, и т.п.
define('CHARSET', 'auto');
// Кодировка соединения с MySQL при восстановлении
// На случай переноса со старых версий MySQL (до 4.1), у которых не указана кодировка таблиц в дампе
// При добавлении 'forced->', к примеру 'forced->cp1251', кодировка таблиц при восстановлении будет принудительно заменена на cp1251
// Можно также указывать сравнение нужное к примеру 'cp1251_ukrainian_ci' или 'forced->cp1251_ukrainian_ci'
define('RESTORE_CHARSET', 'cp1251');

Почитал вот эту статью http://www.drupal.ru/node/23183
Поизгилялся,но тоже не помогло, видимо у меня дело в кривом контенте...

Аватар пользователя Dusk Dusk 2 февраля 2010 в 20:36

Нет в файле дампа данные косые.
Поставил Backup and Migrate. Он корректно сделал дамп, очистив таблицу search_index, хостинг съел дамп, остались кракозябры только в одном блоке, в подвале. Вс еостальное вроде нормально отображается. Но сам дамп все равно с кракозябрами(В UltraEdit смотрю), а я так понимаю их не должно быть, даже посмотрел второй сайт, который у меня на этой же версии друпала, там все ок, хостинг один и тот же и дампер один и тот же. Более того, Denwer один и тот же, он у меня на флешке. Кодировка в обоих базах Utf8, только в одной кракозябры, в другой все ок.

Аватар пользователя Dan Dan 2 февраля 2010 в 20:45

"Dusk" wrote:
Нет в файле дампа данные косые.

Значит неверно делается дамп.
"Dusk" wrote:
остались кракозябры только в одном блоке, в подвале

Чудеса.
"Dusk" wrote:
Но сам дамп все равно с кракозябрами(В UltraEdit смотрю)

Оба дампа с двух сайтов?

Аватар пользователя Dusk Dusk 2 февраля 2010 в 23:43

Нет, мученья только с одним сайтом, со вторым все ок. И в Дампере ничего менять не приходилось.
Сейчас выяснилось, что случайно выбрал для второго сайта 4 Мускул.
Перебросил базу в 5, пока результат не меняется. База без ошибок перебрасывается, но в базе кракозябры, отображается все нормально и на локале и на хосте. За исключением подвала, там три слова на хосте тоже в кракозябрах.