1 (изменено: parch, 2010-01-23 01:22:52)

Тема: ошибка при импорте

Добрый день! При импорте БД выдает вот такую запись:


Вероятно, SQL-запрос содержит ошибку. При наличии таковой, ниже будет выведена ошибка MySQL-сервера, облегчающая диагностику проблемы.

ERROR: Незакрытая кавычка @ 73
STR: '
SQL:
INSERT INTO `school_url_alias` VALUES (2, 'node/2', 'content/?????????-?-????-??-??????', 'ru');


SQL-запрос:

INSERT INTO `school_url_alias` VALUES (2, 'node/2', 'content/?????????-?-????-??-??????', 'ru');

Ответ MySQL: Документация
#1062 - Duplicate entry 'content/-ru' for key 2

Подскажите, пожалуйста, очень-очень новичку - как это дело исправить?
Возможно, все дело в разных кодировках. На хостинге стоит кодировка utf8_unicode_ci,  а у меня на денвере cp1251_general_ci. При экспорте надо было исправить кодировку на такую как на хостинге?

2

Re: ошибка при импорте

parch
Если на Денвере дамп сохраняется в кодировке cp1251, то при импорте на сервере необходимо выбрать на странице импорта кодировку файла дампа windows-1251.

3

Re: ошибка при импорте

Hanut сказал:

parch
Если на Денвере дамп сохраняется в кодировке cp1251, то при импорте на сервере необходимо выбрать на странице импорта кодировку файла дампа windows-1251.

Частично помогло, большая часть импортировалась, потом снова вылезла ошибка:

#1064 - You have an error in your SQL syntax;

4

Re: ошибка при импорте

parch
Приведите вид новой ошибки.

5

Re: ошибка при импорте

Hanut сказал:

parch
Приведите вид новой ошибки.

Ошибка

Вероятно, SQL-запрос содержит ошибку. При наличии таковой, ниже будет выведена ошибка MySQL-сервера, облегчающая диагностику проблемы.

ERROR: Незакрытая кавычка @ 659
STR: `
SQL:

--
-- ???? ?????? ??????? `shop_uc_order_products`
--


-- --------------------------------------------------------

--
-- ????????? ??????? `shop_uc_order_products_pair_vw`
--

CREATE ALGORITHM=UNDEFINED DEFINER=`rita`@`%` SQL SECURITY DEFINER VIEW `master`.`shop_uc_order_products_pair_vw` AS select `op1`.`nid` AS `nid`,`op2`.`nid` AS `pair_nid`,sum(`op2`.`qty`) AS `pair_sum_qty`,count(`op2`.`nid`) AS `order_count` from (`master`.`shop_uc_order_products` `op1` join `master`.`shop_uc_order_products` `op2`) where ((`op1`.`order_id` = `op2`.`order_id`) and (`op1`.`nid` <> `op2`.`nid`)) group by `op1`.`nid`,`op2`.`nid` order by `op1`.`nid`,count(`op2`.`nid`) desc,sum(`op2`.`qty`) desc;


SQL-запрос: Документация

-- -- ???? ?????? ??????? `shop_uc_order_products` -- -- -------------------------------------------------------- -- -- ????????? ??????? `shop_uc_order_products_pair_vw` -- CREATE ALGORITHM=UNDEFINED DEFINER=`rita`@`%` SQL SECURITY DEFINER VIEW `master`.`shop_uc_order_products_pair_vw` AS select `op1`.`nid` AS `nid`,`op2`.`nid` AS `pair_nid`,sum(`op2`.`qty`) AS `pair_sum_qty`,count(`op2`.`nid`) AS `order_count` from (`master`.`shop_uc_order_products` `op1` join `master`.`shop_uc_order_products` `op2`) where ((`op1`.`order_id` = `op2`.`order_id`) and (`op1`.`nid` <> `op2`.`nid`)) group by `op1`.`nid`,`op2`.`nid` order by `op1`.`nid`,count(`op2`.`nid`) desc,sum(`op2`.`qty`) desc;

Ответ MySQL: Документация
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ALGORITHM=UNDEFINED DEFINER=`rita`@`%` SQL SECURITY DEFINER VIEW `master`.`shop_' at line 1

6

Re: ошибка при импорте

parch
В данном случае не импортируются вьюшки (VIEW), это может быть из-за того, что сервер не поддерживает их, либо у вашего пользователя нет прав на их использование, либо вы пытаетесь импортировать вьюшки для пользователя, которого нет в MySQL (пользователь не создан).

Попробуйте открыть файл дампа редактором (рекомендую Notepad++) и поправить все `rita`@`%` заменив rita на имя пользователя на сервере, а % заменить на localhost. Должно получиться что-то вроде `user_name`@`localhost`

Как вариант, можно перед импортом дампа сперва создать на сервере пользователя rita, если у вас есть привилегии на создание пользователей.

7 (изменено: parch, 2010-01-23 23:56:54)

Re: ошибка при импорте

Hanut сказал:

parch
В данном случае не импортируются вьюшки (VIEW), это может быть из-за того, что сервер не поддерживает их, либо у вашего пользователя нет прав на их использование, либо вы пытаетесь импортировать вьюшки для пользователя, которого нет в MySQL (пользователь не создан).

Попробуйте открыть файл дампа редактором (рекомендую Notepad++) и поправить все `rita`@`%` заменив rita на имя пользователя на сервере, а % заменить на localhost. Должно получиться что-то вроде `user_name`@`localhost`

Как вариант, можно перед импортом дампа сперва создать на сервере пользователя rita, если у вас есть привилегии на создание пользователей.

Создала пользователя rita на хостинге, попробовала снова. Вот что получилось:

Ошибка

Вероятно, SQL-запрос содержит ошибку. При наличии таковой, ниже будет выведена ошибка MySQL-сервера, облегчающая диагностику проблемы.

ERROR: Незакрытая кавычка @ 667
STR: `
SQL:

--
-- ???? ?????? ??????? `shop_uc_order_products`
--


-- --------------------------------------------------------

--
-- ????????? ??????? `shop_uc_order_products_pair_vw`
--

CREATE ALGORITHM=UNDEFINED DEFINER=`rita`@`localhost` SQL SECURITY DEFINER VIEW `master`.`shop_uc_order_products_pair_vw` AS select `op1`.`nid` AS `nid`,`op2`.`nid` AS `pair_nid`,sum(`op2`.`qty`) AS `pair_sum_qty`,count(`op2`.`nid`) AS `order_count` from (`master`.`shop_uc_order_products` `op1` join `master`.`shop_uc_order_products` `op2`) where ((`op1`.`order_id` = `op2`.`order_id`) and (`op1`.`nid` <> `op2`.`nid`)) group by `op1`.`nid`,`op2`.`nid` order by `op1`.`nid`,count(`op2`.`nid`) desc,sum(`op2`.`qty`) desc;


SQL-запрос: Документация

-- -- ???? ?????? ??????? `shop_uc_order_products` -- -- -------------------------------------------------------- -- -- ????????? ??????? `shop_uc_order_products_pair_vw` -- CREATE ALGORITHM=UNDEFINED DEFINER=`rita`@`localhost` SQL SECURITY DEFINER VIEW `master`.`shop_uc_order_products_pair_vw` AS select `op1`.`nid` AS `nid`,`op2`.`nid` AS `pair_nid`,sum(`op2`.`qty`) AS `pair_sum_qty`,count(`op2`.`nid`) AS `order_count` from (`master`.`shop_uc_order_products` `op1` join `master`.`shop_uc_order_products` `op2`) where ((`op1`.`order_id` = `op2`.`order_id`) and (`op1`.`nid` <> `op2`.`nid`)) group by `op1`.`nid`,`op2`.`nid` order by `op1`.`nid`,count(`op2`.`nid`) desc,sum(`op2`.`qty`) desc;

Ответ MySQL: Документация
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ALGORITHM=UNDEFINED DEFINER=`rita`@`localhost` SQL SECURITY DEFINER VIEW `master' at line 1

То есть, собственно ничего не изменилось. Просмотрела таблицы в phpmyadmin, напротив тех таблиц, которые не импортируются написано используются. Что это может значить?

Подскажите, пожалуйста, как разделить базу данных. Прочитала пост:

На странице экспорта выберите таблицы с префиксом, которые хотите перенести и сделайте дамп. Перейдите в БД в которой хотите развернуть созданный дамп и импортируйте его. После импорта поменяйте имя базы данных в конфигурационном файле форума. Таким образом копирование данных форума произведено и можно удалить ненужные уже таблицы из исходной БД.

Вы не могли бы немного пояснить. Делаем экспорт выделенных таблиц без архивирования, получаем текстовую страницу, а что дальше делать?

8

Re: ошибка при импорте

parch
Извините, я сразу не разобрался. Похоже в дампе есть ошибки, думаю надо попробовать сделать другой.

По экспорту:
Выбираем на странице экспорта необходимые таблицы; в разделе "Структура" выбираем "Добавить DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT" и снимаем галочку на "Добавить IF NOT EXISTS"; отмечаем "Сохранить как файл" и жмем OK. Полученный дамп импортируем на сервере.

9

Re: ошибка при импорте

Hanut сказал:

parch
Извините, я сразу не разобрался. Похоже в дампе есть ошибки, думаю надо попробовать сделать другой.

По экспорту:
Выбираем на странице экспорта необходимые таблицы; в разделе "Структура" выбираем "Добавить DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT" и снимаем галочку на "Добавить IF NOT EXISTS"; отмечаем "Сохранить как файл" и жмем OK. Полученный дамп импортируем на сервере.

Мне очень стыдно, но из всего сказанного вами, я нашла только "снимаем галочку на "Добавить IF NOT EXISTS". Загадочная кнопочка "сохранить как файл" не находится. В разделе "Структура" есть пункт "добавить удаление таблицы", это он имеется ввиду под DROP TABLE? И если так, то как добавить остальное: / VIEW / PROCEDURE / FUNCTION / EVENT"?

10

Re: ошибка при импорте

parch
Как я понял у вас MySQL 4 и phpMyAdmin какой-то древний, поэтому мои описания не будут дословны.

"добавить удаление таблицы" - Это надо выставить. / VIEW / PROCEDURE / FUNCTION / EVENT - этого у вас не будет в связи с устаревшей версией MySQL.

Сохранить как файл - эта галочка должна быть в заголовке того блока в котором находится кнопка OK.

11

Re: ошибка при импорте

Hanut сказал:

parch
Как я понял у вас MySQL 4 и phpMyAdmin какой-то древний, поэтому мои описания не будут дословны.

"добавить удаление таблицы" - Это надо выставить. / VIEW / PROCEDURE / FUNCTION / EVENT - этого у вас не будет в связи с устаревшей версией MySQL.

Сохранить как файл - эта галочка должна быть в заголовке того блока в котором находится кнопка OK.

phpMyAdmin 2.6.1 , MySQL 5.0.45 - не думала, что это устаревшие версии. Но это лирика, основной вопрос - что значит "используется" напротив таблицы? Я в полном недоумении, но видимо именно этот момент мешает нормальному экспорту-импорту. Эти таблицы надо очистить или только удаление?

12

Re: ошибка при импорте

phpMyAdmin 2.6.1 - это старая версия.

Что значит "используется" напротив таблицы - я не знаю, даже не понимаю где такое может выводиться.

13

Re: ошибка при импорте

Hanut сказал:

phpMyAdmin 2.6.1 - это старая версия.

Что значит "используется" напротив таблицы - я не знаю, даже не понимаю где такое может выводиться.

Там, где у других таблиц - 0        MyISAM         utf8_general_ci           1.0 KB       

Видимо придется сдаться и сделать магазин заново. К счастью половина сайта встала и можно выдохнуть, и не спеша доделать оставшееся.Большое спасибо за помощь в те трудные для меня часы, когда мой сайт лежал бездыханным.

14

Re: ошибка при импорте

parch
Сожалею, что не могу помочь ничем конкретным, но ситуация с "используется" в статусе таблиц явно ненормальна. Причину такого поведения указать не могу, но советую попробовать восстановить таблицы следующим запросом:

REPAIR TABLE `tbl_name`;

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

15

Re: ошибка при импорте

[size=16]"Что значит "используется" напротив таблицы" [/size]

Это означает что таблица крашнутая (CRASHED)  и ее нужно восстановить. Переходим в раздел структура базы там где отображаются все таблицы
Выбираем чекбоксами все таблицы со словом "используется" и внизу в выпадающем списке выбираем пункт восстановить таблицу.

Такая трабла часто может происходить, если используется тип таблиц MyISAM. Они в принципе склонны часто ломаться.

16

Re: ошибка при импорте

Ошибка
SQL-запрос:

-- -- Дамп данных таблицы `jos_banner` --
Warning: Cannot modify header information - headers already sent by (output started at Z:\home\localhost\www\Tools\phpmyadmin\export.php:120) in Z:\home\localhost\www\Tools\phpmyadmin\libraries\ob.lib.php on line 61

Warning: Cannot modify header information - headers already sent by (output started at Z:\home\localhost\www\Tools\phpmyadmin\export.php:120) in Z:\home\localhost\www\Tools\phpmyadmin\libraries\header_http.inc.php on line 14

Warning: Cannot modify header information - headers already sent by (output started at Z:\home\localhost\www\Tools\phpmyadmin\export.php:120) in Z:\home\localhost\www\Tools\phpmyadmin\libraries\header_http.inc.php on li[...]

Ответ MySQL:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '<!--error--><br />
<b>Warning</b>:  Cannot modify header information - headers a' at line 1

В чем причина, даже когда делал на компе дамп через навикат, выдавал ошибку
[Msg] [Dtf] DataTransfer started
[Msg] [Dtf] Getting tables
[Err] [Dtf] 1033 - Incorrect information in file: '.\joomla\jos_bannerclient.frm'
[Err] [Dtf] Finished - Unsuccessfully


Но через phpmyadmin вроде все сработало.
Но когда заливаю на базу хостера выдает ту ошибку которая написана сверху

17

Re: ошибка при импорте

Все сам сделал, поставил такую же версию пхпадмина как и на хотинге и все прошло удачно,)))