Импорт БД через phpMyAdmin.

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

Аватар пользователя Ashina Ashina 5 ноября 2008 в 20:26

Сижу и матерюсь. Почему матерюсь? Не знаю. Или я такой тупой или серверы, точно сказать не могу, потому что уже ни они ни моя голова не варит. Купил новый хостинг. Решил переместить проекты на один хостинг. Сразу взялся за самый большой. Почитал про перенос. Скопировал файлы, задампил БД. Залил на хостинг файлы. Захожу в phpMyAdmin - импортирую БД, а он выдает ошибку. Постоянно. Я ему уже и в zip пихал БД и d GZIP, и без сжатия - ноль эмоций, загружает примерно до середины и все. Хотя ограничение по размеру на загрузгу - 15 мегабайт, а в сжатом виде БД занимает три мегабайта. Что делать уже не знаю. Сайт весь день стоит. Поисковики наверное туда бурятся, так как в последнее на него ссылок много было и трафик вырос (поэтому решил переехать на более качественный хостинг).

Подскажите, может я не одинок во вселенной и кто - то тоже так бился об pyhMyAdmin?

Текст выдаваемой ошибки:

SQL-запрос:

--
-- Дамп данных таблицы `actions`
--
INSERT INTO `actions` ( `aid` , `type` , `callback` , `parameters` , `description` )
VALUES (
'comment_unpublish_action', 'comment', 'comment_unpublish_action', '', 'Снять с публикации комментарий'
), (
'node_publish_action', 'node', 'node_publish_action', '', 'Опубликовать'
), (
'node_unpublish_action', 'node', 'node_unpublish_action', '', 'Снять с публикации'
), (
'node_make_sticky_action', 'node', 'node_make_sticky_action', '', 'Закрепить вверху списков'
), (
'node_make_unsticky_action', 'node', 'node_make_unsticky_action', '', 'Удалить закрепление вверху списков'
), (
'node_promote_action', 'node', 'node_promote_action', '', 'Поместить на главную страницу'
), (
'node_unpromote_action', 'node', 'node_unpromote_action', '', 'Убрать с главной'
), (
'node_save_action', 'node', 'node_save_action', '', 'Сохранить сообщение'
), (
'user_block_user_action', 'user', 'user_block_user_action', '', 'Блокировать текущего пользователя'
), (
'user_block_ip_action', 'user', 'user_block_ip_action', '', 'Запретить IP адрес текущего пользователя'
);

Ответ MySQL:  
#1062 - Duplicate entry 'comment_unpublish_action' for key 1

Комментарии

Аватар пользователя logrise@drupal.org logrise@drupal.org 5 ноября 2008 в 21:23

Перед тем как дампить базу сделай оптимизацию всех таблиц, потом исправить все таблицы. Потом отремонтировать или как то так оно называется в phpmyadmin. Возможно исправится дубликат записи, имхо...

Аватар пользователя cka3o4h1k cka3o4h1k 5 ноября 2008 в 21:39

У меня один хостер имеет кривую версию phpMyAdmin, имел туже проблему, потому сам скачал последнюю версию, установил в исходный и целевой хостинг, и перенес базу. Не помню ставил ли я какие опции при экспорте, вроде дефолтные галки стояли.

Но сперва сделать то что советует logrise@drupal.org

Аватар пользователя Dzmitry Paulenka Dzmitry Paulenka 6 ноября 2008 в 2:01

http://sypex.net/ - очень удобный дампер проблем с ним никогда не имел

http://www.mysqldumper.de/en/ - немецкий бесплатный дампер + SQL browser в одном флаконе. Только не забудь защитить директорию с дампером паролем, а то он по умолчанию открыт для всех.

Аватар пользователя VladSavitsky VladSavitsky 6 ноября 2008 в 2:21

Проблема в том, что при создании дампа вы (или не вы) указали параметр --skip-disable-keys.
Вариантов решений как всегда несколько:

  1. Открыть дамп базы удалить строки-комментарии, которые обрамляют вставку данных
  2. Сдеалать дамп базы без этого параметра

Лично я так делаю дамп:

mysqldump --quick -uUSER -hHOST -p'password' DATABASE-NAME | gzip -c > ./dump.sql.gz

А восстанавливаю так:

tar xzvf ./dump.sql.gz
mysql -uUSER -hHOST -pPASSWORD DATABASE-NAME < ./dump.sql

Попросите хостера, чтобы открыл вам шел (SSH) и не пользуйтесь хостингом, если его нет.
Шел существенно облегчает жизнь веб-мастеру.

Аватар пользователя glu2006 glu2006 6 ноября 2008 в 11:10

Перед заливкой дампа, вычистите таблицы:
cache
cache_content и т.д. которые начинаются на cache,
search_ ... аналогично,
watchdog.
это облегчит Вашу базу процентов на 40.

Аватар пользователя Ashina Ashina 6 ноября 2008 в 21:27

"<a href="mailto:logrise@drupal.org">logrise@drupal.org</a>" wrote:
Перед тем как дампить базу сделай оптимизацию всех таблиц, потом исправить все таблицы. Потом отремонтировать или как то так оно называется в phpmyadmin. Возможно исправится дубликат записи, имхо...

Попробовал. Оптимизировал, исправил, сдампил с помощью sypex дампера - не помогло.

Аватар пользователя cka3o4h1k cka3o4h1k 7 ноября 2008 в 11:24

Кроме этого обязательно почистить кеш, glu2006 очень правильно подметил
Так а какие сейчас пролемы? Не импортируэться база?

Аватар пользователя Ashina Ashina 7 ноября 2008 в 22:10

"cka3o4h1k" wrote:
Кроме этого обязательно почистить кеш, glu2006 очень правильно подметил
Так а какие сейчас пролемы? Не импортируэться база?

Нет. застрявает на 46 строке из 78 (((

Аватар пользователя PVasili PVasili 7 ноября 2008 в 22:56

Попробуйте любой сторонней программой импортировать/экспортировать. Например:
http://www.mysqlfront.de
http://www.heidisql.com
http://sypex.net хорош до 300-400Mb дальше проблемно, да и таймаут на PHP у некоторых провайдеров мешает Sad

Аватар пользователя veshiyi veshiyi 2 мая 2009 в 19:43

а у меня Касперский блокировал импорт ДБ (это я уже потом сообразил)

#1062 - Duplicate entry 'comment_unpublish_action' for key 1,

выгружаешь антивирус и все импортировалось.

Аватар пользователя joomler joomler 24 июля 2009 в 22:17

ребята. проблема. так и не решил
Дампер загружает только 81 таблицу из 157 и все. остальрные вручную загоняю...
и это при том. что в my.cnf на денвере поставил max_packet_limit 64мб в двух местах. а до этого вообще ошибку выдавал сайпекс дампер...
что же делать, база в зипе 1.4 мб, а гз 17 мб. и такая фигня...

понмю када то давно все получалось

Аватар пользователя krasich krasich 5 декабря 2013 в 19:08

решил подобную проблему следующим образом:
1. удалил все данные из всех таблиц БД
2. Импортировал из резервной копии

Скрипт по выполнению первого пункта получил с помощью кода:
select concat("delete from ", TABLE_NAME, ";") from information_schema.tables
where TABLE_SCHEMA = 'имя бд'
and TABLE_TYPE = 'BASE TABLE'