Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
1 2006-11-11 20:30:06 (изменено: ysl, 2006-11-11 21:30:53)
- ysl
- Редкий гость
- Неактивен
- Зарегистрирован: 2006-11-11
- Сообщений: 18
Тема: #1064 ошибка при импорте дампа базы данных MySQL
При импорте пишет —
Ошибка
SQL-запрос:
— phpMyAdmin SQL Dump
— version 2.8.2-Debian-0.1
— http://www.phpmyadmin.net
—
— Хост: localhost
— Время создания: Ноя 11 2006 г., 22:17
— Версия сервера: 5.0.20
— Версия PHP: 4.4.2-1.1
—
— БД: `ab`
—
— ———————————————————
—
— Структура таблицы `additions`
—
CREATE TABLE `additions` (
`uid` varchar( 8 ) NOT NULL ,
`amount` float NOT NULL ,
`comment` varchar( 50 ) NOT NULL ,
`delmark` tinyint( 1 ) NOT NULL default ‘0’
) ENGINE = MYISAM DEFAULT CHARSET = cp1251;
Ответ MySQL: Документация
#1064 — You have an error in your SQL syntax near ‘ENGINE=MyISAM DEFAULT CHARSET=cp1251’ at line 9
что делать?
2 Ответ от Hanut 2006-11-11 23:10:49
- Hanut
- Модератор
- На форуме
- Откуда: Рига, Латвия
- Зарегистрирован: 2006-07-02
- Сообщений: 9,726
Re: #1064 ошибка при импорте дампа базы данных MySQL
Очень распространённая ошибка. Причины могут быть в следующем:
1) Тип движка БД в которую вы пытаетесь вставить дамп не MYISAM.
2) Кодировка БД, в которую вставляется таблица (`ab`) — не cp1251.
3) От такой ошибки иногда помогает смена сопоставления на заглавной странице phpMyAdmin. Просто выберите из выпадающего списка «MySQL connection collation:» — cp1251_general_ci.
3 Ответ от ysl 2006-11-11 23:58:09 (изменено: ysl, 2006-11-12 00:09:19)
- ysl
- Редкий гость
- Неактивен
- Зарегистрирован: 2006-11-11
- Сообщений: 18
Re: #1064 ошибка при импорте дампа базы данных MySQL
3) От такой ошибки иногда помогает смена сопоставления на заглавной странице phpMyAdmin. Просто выберите из выпадающего списка «MySQL connection collation:» — cp1251_general_ci.
А можна поподробнее у меня phpMyAdmin — 2.9.1 rus
1) Тип движка БД в которую вы пытаетесь вставить дамп не MYISAM.
А можна поменять тип движка БД?
Да и для того чтобы вставить дамп нужно создать базу?
2) Кодировка БД, в которую вставляется таблица (`ab`) — не cp1251.
И кодировка базы помоему Russ UTF-8
4 Ответ от Lokki 2006-11-12 11:12:18
- Lokki
- Админ
- Неактивен
- Откуда: Москва
- Зарегистрирован: 2006-01-25
- Сообщений: 910
Re: #1064 ошибка при импорте дампа базы данных MySQL
ysl
Я бы порекомендовал во избежании подобных синтаксических ошибок при создании дампа обращать внимание на опцию «SQL compatibility mode» в блоке «SQL options» и выбирать MySQL40, если у запущен MySQL>4.x.x
Нет неразрешимых проблем, есть неприятные решения. (Э. Борн)
5 Ответ от Hanut 2006-11-12 20:12:04
- Hanut
- Модератор
- На форуме
- Откуда: Рига, Латвия
- Зарегистрирован: 2006-07-02
- Сообщений: 9,726
Re: #1064 ошибка при импорте дампа базы данных MySQL
А можна поподробнее у меня phpMyAdmin — 2.9.1 rus
Индексная страница phpMyAdmin, в выпадающем списке «Сопоставление соединения с MySQL:» выберите cp1251_general_ci.
А можна поменять тип движка БД?
Да, можно. Но проще создать БД с тем движком, который нужен изначально.
Да и для того чтобы вставить дамп нужно создать базу?
Обязательно.
И кодировка базы помоему Russ UTF-8
Для того чтобы узнать в какой кодировке находится БД, в левом фрейме выберите её, в правом, в самом низу сетки отображающей таблицы увидете кодировку. При необходимости поменять её зайдите на вкладку «Операции». Там всё ясно и понятно.
6 Ответ от ysl 2006-11-13 01:20:15 (изменено: ysl, 2006-11-13 01:26:39)
- ysl
- Редкий гость
- Неактивен
- Зарегистрирован: 2006-11-11
- Сообщений: 18
Re: #1064 ошибка при импорте дампа базы данных MySQL
Для того чтобы узнать в какой кодировке находится БД, в левом фрейме выберите её, в правом, в самом низу сетки отображающей таблицы увидете кодировку. При необходимости поменять её зайдите на вкладку «Операции». Там всё ясно и понятно.
Это дамп а не база.
Я скопировал базу как есть всю папку, но она не работает, таблици видно ,но Ошибка
SQL-запрос: Правка
SHOW INDEX FROM `additions` ;
Ответ MySQL: Документация
#1033 — Incorrect information in file: ‘.abadditions.frm’
Что это?
7 Ответ от Hanut 2006-11-13 17:49:21
- Hanut
- Модератор
- На форуме
- Откуда: Рига, Латвия
- Зарегистрирован: 2006-07-02
- Сообщений: 9,726
Re: #1064 ошибка при импорте дампа базы данных MySQL
ysl
Перед импортом дампа необходимо создать БД, вот её кодировку и надо задать так, как надо.
Я скопировал базу как есть всю папку, но она не работает
Приехали.
То что вы делаете импортом дампа не называется и вставлять таким образом таблицы нельзя.
Читайте FAQ и справку данного портала по импорту БД. При возникновении затруднений, задавайте конкретные вопросы. Постараемся вам помочь.
8 Ответ от Lokki 2006-11-13 19:56:55
- Lokki
- Админ
- Неактивен
- Откуда: Москва
- Зарегистрирован: 2006-01-25
- Сообщений: 910
Re: #1064 ошибка при импорте дампа базы данных MySQL
ysl
Правила напоминаю: один топик — один вопрос. Последняя ошибка приведенная тобой уже не синтаксическая. И возникает она как уже модератор сказал не в результате импорта дампа.
#1033 — Incorrect information in file: ‘.abadditions.frm’
Что это?
Поврежден файл описания, содержащий структуру таблицы. Запусти базу данных, создай таблицу с точно такой же структурой — создашь корректный additions.frm, потом скопируй туда (в директорию ab) свои неповрежденные additions.MYD и additions.MYI (если у тебя таблица MyISAM). Должно сработать.
Нет неразрешимых проблем, есть неприятные решения. (Э. Борн)
9 Ответ от quxx 2006-12-30 15:08:12
- quxx
- Редкий гость
- Неактивен
- Зарегистрирован: 2006-12-30
- Сообщений: 2
Re: #1064 ошибка при импорте дампа базы данных MySQL
здравствуйте, такая же точно ошибка…проблема вот в чем, заливаю базу через хостинг, т.е. phpadmin.masterhost.ru. нужна база на сайте. всё скомпелировал dump’ом…импортирую .sql-файл, получаю ошибку:
CREATE TABLE `be_groups` (
…
) ENGINE = InnoDB DEFAULT CHARSET = latin1;
Ответ 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 ‘DEFAULT CHARSET=latin1’ at line 29
в файле my.ini ставлю cp1251 кодировку, но база всё-равно создаётся с латин1…пробовал потом изменить на cp1251 по-другому, всё-равно пишет ошибку, только не с латин1, а с cp1251… что посоветуете?
10 Ответ от Lokki 2006-12-30 23:17:26
- Lokki
- Админ
- Неактивен
- Откуда: Москва
- Зарегистрирован: 2006-01-25
- Сообщений: 910
Re: #1064 ошибка при импорте дампа базы данных MySQL
quxx
При постановке вопроса ты забыл указать версию phpMyAdmin и MySQL-сервера. Если вручную удалить из дампа запись «DEFAULT CHARSET = latin1», ошибка наблюдается?
Если я правильно тебя понял: проблема возникает при импорте дампа на удаленный MySQL-сервер, который был ранее создан с помощью mysqldump на локальном MySQL-сервере.
Если это так, то причиной может старая версия удаленного MySQL-сервера: возможность задания кодировок на уровне сервера была реализована в MySQL4.1. Поэтому на старых версиях MySQL синтаксис «.. DEFAULT CHARSET = latin1;» будет вызывать #1064 ошибку.
Можно воспользоваться возможностью задавать режим совместимости, которую предоставляет phpMyAdmin посредством опции «SQL compatibility mode» в блоке «SQL options» на вкладке «Export».
Нет неразрешимых проблем, есть неприятные решения. (Э. Борн)
11 Ответ от quxx 2007-01-01 23:27:15
- quxx
- Редкий гость
- Неактивен
- Зарегистрирован: 2006-12-30
- Сообщений: 2
Re: #1064 ошибка при импорте дампа базы данных MySQL
Lokki сказал:
quxx
При постановке вопроса ты забыл указать версию phpMyAdmin и MySQL-сервера. Если вручную удалить из дампа запись «DEFAULT CHARSET = latin1», ошибка наблюдается?Если я правильно тебя понял: проблема возникает при импорте дампа на удаленный MySQL-сервер, который был ранее создан с помощью mysqldump на локальном MySQL-сервере.
Если это так, то причиной может старая версия удаленного MySQL-сервера: возможность задания кодировок на уровне сервера была реализована в MySQL4.1. Поэтому на старых версиях MySQL синтаксис «.. DEFAULT CHARSET = latin1;» будет вызывать #1064 ошибку.
Можно воспользоваться возможностью задавать режим совместимости, которую предоставляет phpMyAdmin посредством опции «SQL compatibility mode» в блоке «SQL options» на вкладке «Export».
спасибо,…извиняюсь за неполноту вопроса. на локалке стоит MySQL 4.1..на удалёнке стоит версия 4.0…в ручную удаляю запись из дампа, всё-равно ошибка… разберёмся теперь )
12 Ответ от Blacktorn 2007-03-21 06:01:48
- Blacktorn
- Редкий гость
- Неактивен
- Зарегистрирован: 2007-03-21
- Сообщений: 2
Re: #1064 ошибка при импорте дампа базы данных MySQL
Доброго времени суток
возникла похожая проблема
phpMyAdmin — 2.10.0-dev
сервера: 4.1.3b-beta-nt
MySQL-клиента: 5.0.22
MySQL-кодировка: UTF-8 Unicode (utf8)
при восстановлении базы с дампа дает ошибку пишет такую ошибку
#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 ‘group’ at line 1
drop table if exists building;
drop table if exists department;
drop table if exists emploee;
drop table if exists ext_phone;
drop table if exists group;
drop table if exists int_phone;
drop table if exists position;
drop table if exists room;
13 Ответ от Hanut 2007-03-21 12:44:28
- Hanut
- Модератор
- На форуме
- Откуда: Рига, Латвия
- Зарегистрирован: 2006-07-02
- Сообщений: 9,726
Re: #1064 ошибка при импорте дампа базы данных MySQL
Blacktorn
group — является зарезервированным словом MySQL, поэтому должно быть заключено в косые кавычки.
14 Ответ от Blacktorn 2007-03-21 13:21:52
- Blacktorn
- Редкий гость
- Неактивен
- Зарегистрирован: 2007-03-21
- Сообщений: 2
Re: #1064 ошибка при импорте дампа базы данных MySQL
а по барабану не помогает… прописал по другому base.group (где base название базы) и все заработало
15 Ответ от Menart 2008-08-14 23:07:49
- Menart
- Редкий гость
- Неактивен
- Зарегистрирован: 2008-08-14
- Сообщений: 2
Re: #1064 ошибка при импорте дампа базы данных MySQL
у меня таже проблема версия mysql клиента в который я заливаю дамп 5.0.45 и там нельзя выбрать дженерал си , что мне делать?
вот ошибка
SQL-запрос:
-- phpMyAdmin SQL Dump
-- version 3.0.0-dev
-- http://www.phpmyadmin.net
--
-- Хост: *.*.0.11
-- Время создания: Авг 13 2008 г., 13:20
-- Версия сервера: 5.0.51
-- Версия PHP: 5.2.5
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
Ответ MySQL: Документация
#1193 - Unknown system variable 'SQL_MODE'
16 Ответ от Hanut 2008-08-15 00:58:49
- Hanut
- Модератор
- На форуме
- Откуда: Рига, Латвия
- Зарегистрирован: 2006-07-02
- Сообщений: 9,726
Re: #1064 ошибка при импорте дампа базы данных MySQL
Menart
Попробуйте закомментировать в дампе строку:
— SET SQL_MODE = «NO_AUTO_VALUE_ON_ZERO»;
17 Ответ от Menart 2008-09-04 01:12:52
- Menart
- Редкий гость
- Неактивен
- Зарегистрирован: 2008-08-14
- Сообщений: 2
Re: #1064 ошибка при импорте дампа базы данных MySQL
пробовал, он про следующую строку такую же ошибку выдает
18 Ответ от Hanut 2008-09-04 14:16:07
- Hanut
- Модератор
- На форуме
- Откуда: Рига, Латвия
- Зарегистрирован: 2006-07-02
- Сообщений: 9,726
Re: #1064 ошибка при импорте дампа базы данных MySQL
Menart
Сомневаюсь, что ошибка будет такая же.
Какая версия MySQL сервера на котором осуществляется импорт?
19 Ответ от SkyLine 32 2008-09-07 21:41:04
- SkyLine 32
- Новичок
- Неактивен
- Зарегистрирован: 2008-09-07
- Сообщений: 1
Re: #1064 ошибка при импорте дампа базы данных MySQL
Люди помогите!!! Я администратор сайта. Стоял у меня движок DataLife Engine 7.0 я обновил его до 7.2
Появились в админке баги, не мог юзеру поменять категорию или его послать в бан. В итоге я решил вернуть DataLife Engine 7.0 и случилось еще хуже. Теперь я могу с юзером делать что захочу, а вот добавить новость из админки не могу. Пишет
MySQL Error!
————————
The Error returned was:
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 ‘allow_comm=’1′, approve=’1′, allow_main=’1′, allow_rate=’1′, fixed=’1′, allow_br’ at line 1
Error Number:
1064
И окно с ошибками.
Кто мне поможет решить проблему?
20 Ответ от Hanut 2008-09-08 03:20:36
- Hanut
- Модератор
- На форуме
- Откуда: Рига, Латвия
- Зарегистрирован: 2006-07-02
- Сообщений: 9,726
Re: #1064 ошибка при импорте дампа базы данных MySQL
SkyLine 32
Вероятно при обновлении были изменены некоторые таблицы в БД и теперь они вызывают ошибки при работе с предыдущей версией скрипта. Попробуйте поискать у разработчика скрипт отката версий, или можно попробовать посмотреть на то какие таблицы были изменены при обновлении и вернуть их в первоночальное состояние.
21 Ответ от webv 2008-10-03 09:39:30
- webv
- Новичок
- Неактивен
- Зарегистрирован: 2008-01-12
- Сообщений: 1
Re: #1064 ошибка при импорте дампа базы данных MySQL
А, где можно узнать значения ошибок по их номеру , при работе с БД часто выскакивают? Спасибо.
22 Ответ от lostoffuture 2008-10-03 09:44:33
- lostoffuture
- Редкий гость
- Неактивен
- Зарегистрирован: 2008-10-02
- Сообщений: 7
Re: #1064 ошибка при импорте дампа базы данных MySQL
копируете полность текст ошибки и вставляете ее в поисковик, вам сразу выдаст кучу сайтов с похожими ворпосами и как правильно утсранить ощибку))))))
23 Ответ от Hanut 2008-10-03 14:26:49
- Hanut
- Модератор
- На форуме
- Откуда: Рига, Латвия
- Зарегистрирован: 2006-07-02
- Сообщений: 9,726
Re: #1064 ошибка при импорте дампа базы данных MySQL
webv сказал:
А, где можно узнать значения ошибок по их номеру , при работе с БД часто выскакивают? Спасибо.
Обычно ошибки описательны, но здесь можно посмотреть описание, если выводится только код ошибки.
http://dev.mysql.com/doc/refman/5.0/en/ … dling.html
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
I exported a database as a backup that was working fine. When I imported the database to the same exact server, folder, etc. I got this error:
There is a chance that you may have found a bug in the SQL parser.
Please examine your query closely, and check that the quotes are
correct and not mis-matched. Other possible failure causes may be that
you are uploading a file with binary outside of a quoted text area.
You can also try your query on the MySQL command line interface. The
MySQL server error output below, if there is any, may also help you in
diagnosing the problem. If you still have problems or if the parser
fails where the command line interface succeeds, please reduce your
SQL query input to the single query that causes problems, and submit a
bug report with the data chunk in the CUT section below:
—-BEGIN CUT—- eNo1jUEKwjAURIXu/inmADHkpwYxu1JCu0iTmFQ9gYtushP09qaCs3oMjxmXc8wWI2PU8C5YMDSY
qayt7oiWT7l6CyON7NWxV5LpVjJiERgmF1aBu2vmY6sY5xwX11Ql9YXSMlicGhtKc9otEcs+1Es+
w2/19SY/hMniWen3Qd3hny8nMiDI
—-END CUT—-
—-BEGIN RAW—- ERROR: C1 C2 LEN: 1 2 11 STR:MySQL: 5.5.30-30.1 USR OS, AGENT, VER: Win CHROME 5.0.29 PMA: 4.0.5
PHP VER,OS: 5.3.17 Linux LANG: en SQL:
—-END RAW—-SQL query:
MySQL said: Documentation
#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 » at line 1
The only problem seems to be that my index page is missing content, the main content actually. All of these files are .sql.
I then dropped all my tables and imported the original database from April of last year. Obviously, this database is missing all the account info, order info, etc. for all my customers as well as all the changes that have been made to my products.
When I compare the two databases the first 11 lines seem to be the problem but I don’t know how to fix it. The first 11 lines of the file that DO NOT WORK are:
-- phpMyAdmin SQL Dump
-- version 4.0.5
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Sep 22, 2013 at 01:28 PM
-- Server version: 5.5.30-30.1
-- PHP Version: 5.3.17
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
The first 11 lines of the file that DOES WORK are:
-- phpMyAdmin SQL Dump
-- version 3.4.10.1
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Apr 09, 2012 at 05:50 AM
-- Server version: 5.1.61
-- PHP Version: 5.2.17
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
I hve tried to simply copy and paste the 11 lines from the working file to the file that does not work and get another error.
I know this is a long post and I apologize but I have been struggling with this for hours and really need some help.
Thanks
I have a SQL database that I want to import using phplyadmin but I am getting this error.
CREATE TABLE `wp_commentmeta` (
`meta_id` BIGINT( 20 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
`comment_id` BIGINT( 20 ) UNSIGNED NOT NULL DEFAULT '0',
`meta_key` VARCHAR( 255 ) DEFAULT NULL ,
`meta_value` LONGTEXT,
PRIMARY KEY ( `meta_id` ) ,
KEY `comment_id` ( `comment_id` ) ,
KEY `meta_key` ( `meta_key` ( 191 ) )
) ENGINE = Aria AUTO_INCREMENT =3843 DEFAULT CHARSET = utf8
PAGE_CHECKSUM =1 DELAY_KEY_WRITE =1 TRANSACTIONAL =1;
MySQL said: Documentation
#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 ‘PAGE_CHECKSUM=1 DELAY_KEY_WRITE=1 TRANSACTIONAL=1’ at line 9
Дата: 25.11.2013
Автор: Василий Лукьянчиков , vl (at) sqlinfo (dot) ru
Статья ориентирована на новичков. В ней объясняется, что означает ошибка сервера MySQL №1064, рассматриваются типичные ситуации и причины возникновения этой ошибки, а также даются рекомендации по исправлению.
Рассмотрим простейший пример.
SELECT mid, time, title, artist, download, view_count, rating, vote_num FROM dle_mservice WHERE category = ‘1’ AND approve = ‘1’ ORDER BY time DESC LIMIT -10,10;
ERROR 1064 (42000): 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 ‘-10,10’ at line 1
Сервер MySQL сообщает, что в первой строке нашего SQL запроса имеется синтаксическая ошибка, и в одинарных кавычках цитирует часть запроса с того места где начинается ошибка. Это очень полезное свойство, так как позволяет сразу определить место, которое сервер счел ошибочным. В данном случае это ‘-10,10’, ошибка возникает из-за того, что параметр LIMIT не может быть отрицательным числом.
Однако, бывает и так, что цитируемый кусок запроса не содержит синтаксической ошибки. Это означает, что данная часть запроса находится не на своем месте из-за чего весь запрос становится синтаксически неверным. Например, отсутствует разделитель между двумя запросами, пропущен кусок запроса, невидимый символ в дампе и т.д. Неудобством таких ситуаций является то, что сообщение об ошибке не содержит исходный запрос.
Действия по исправлению зависят от контекста возникновения ошибки. Таковых всего 3:
1. Запрос в редакторе.
Самый простейший случай — вы пишите свой запрос в редакторе. Если причина не опечатка, то:
- Смотреть в документации синтаксис команды для вашей версии сервера MySQL.
Обратите внимание: речь идет о версии сервера MySQL, а не клиента (phpmyadmin, workbench и т.д.). Версию сервера можно узнать выполнив команду select version();
- В MySQL допускается использование ключевых слов в качестве имен столбцов/таблиц, но при этом их необходимо заключать в обратные кавычки (там где буква ё на клавиатуре).
Пример:select order from test;
ERROR 1064 (42000): 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 ‘order from test’ at line 1
MariaDB [test]> select `order` from test;
+——-+
| order |
+——-+
| NULL |
+——-+ - По умолчанию ; разделяет команды. Если же нужно выполнить набор из нескольких инструкций как одну команду (например, при создании процедур, фунуций, триггеров), то в зависимости от используемого клиента может потребоваться переопределить разделитель с помощью DELIMITER, иначе интерпретация команды остановится на первой ; и будет ошибка синтаксиса. Пример:
delimiter //
create procedure test()
begin
set @a=1;
select @a;
end//Обратите внимание: DELIMITER это команда консольного клиента mysql, необходимость его использования зависит от того как вы передаете команду серверу. Например,:
- mysql_query() выполняет содержимое как одну команду, добавление delimiter приведет к error 1064 с цитатой, начинающейся со слова delimiter
- phpmyadmin удаляет слово delimiter из-за чего возникает error 1064 с цитатой, начинающейся с переопределенного разделителя
- в MysqlQueryBrowser напротив необходимо использовать delimiter.
2. Перенос базы на другой сервер.
У вас есть дамп (т.е. файл с расширением .sql) и при попытке его импортировать вы получаете ошибку 1064. Причины:
-
В различных версиях набор ключевых слов и синтаксис может немного отличаться. Наиболее распространенный случай: команда create table, в которой ключевое слово type было заменено на engine. Например, если вы получаете ошибку:
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 ‘TYPE=MyISAM CHARACTER SET `utf8`’ at line 29
Это означает, что вы переносите базу в пятую версию сервера MySQL, в котором ключевое слово TYPE не поддерживается и его нужно заменить на ENGINE.
Редко бываю случаи, когда перенос идет на старый (~3.23) сервер, который кодировки не поддерживает. Тогда ошибка будет иметь вид:
#1064 — You have an error in your SQL syntax near ‘DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci’ at line 1
Такое может произойти, если вы переносите базу с хостинга на локальный комп, где стоит древняя версия MySQL. Лучшим решением в данном случае будет не править дамп, а обновить MySQL.
-
Часто проблемы вызваны тем, что дамп делается неродными средствами MySQL (например, phpmyadmin) из-за чего в нем могут быть BOM-маркер, собственный синтаксис комментариев, завершения команды и т.д. Кроме того при использовании того же phpmyadmin возможна ситуация при которой из-за ограничения апача на размер передаваемого файла команда будет обрезана, что приведет к ошибке 1064.
Например, если вы получаете ошибку:#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 ‘
CREATE TABLE `jos_banner` (
`bid` int(11) NOT NULL auto_increment,
`ci‘ at line 1Значит ваш дамп содержит BOM-маркер. Это три байта в начале файла, помогающие программе определить что данный файл сохранен в кодировке UTF-8. Проблема в том, что MySQL пытается интерпретировать их как команду из-за чего возникает ошибка синтаксиса. Нужно открыть дамп в текстовом редакторе (например, Notepad++) и сохранить без BOM.
Для избежания подобных проблем при создании дампа и его импорте лучше пользоваться родными средствами MySQL, см http://sqlinfo.ru/forum/viewtopic.php?id=583
3. Некорректная работа сайта.
Если во время работы сайта появляются ошибки синтаксиса, то, как правило, причина в установке вами сомнительных модулей к вашей cms. Лучшее решение — отказаться от их использования. Еще лучше предварительно проверять их работу на резервной копии.
Пример. Движок dle 7.2, поставили модуль ,вроде бы все Ок, но:
MySQL Error!
————————
The Error returned was:
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 ‘AND approve=’1‘ AND date < ‘2008-10-04 04:34:25‘ LIMIT 5’ at line 1
Error Number:
1064
SELECT id, title, date, category, alt_name, flag FROM dle_post WHERE MATCH (title, short_story, full_story, xfields, title) AGAINST (‘Приобретение и оплата скрипта ‘) AND id != AND approve=‘1’ AND date < ‘2008-10-04 04:34:25’ LIMIT 5
В данном примере мы видим, что причина ошибки в отсутствии значения после «id != «
Обратите внимание: из процитированного сервером MySQL куска запроса причина ошибки не ясна. Если ваша CMS не показывает весь запрос целиком, то нужно в скриптах найти место где выполняется данный запрос и вывести его на экран командой echo.
Кусок кода, который отвечает за данный запрос это
$db->query («SELECT id, title, date, category, alt_name, flag FROM « . PREFIX . «_post WHERE MATCH (title, short_story, full_story, xfields, title) AGAINST (‘$body’) AND id != «.$row[‘id’].» AND approve=’1′».$where_date.» LIMIT «.$config[‘related_number’]);
Далее можно искать откуда взялась переменная $row и почему в ней нет элемента ‘id’ и вносить исправления, но лучше отказаться от использования такого модуля (неизвестно сколько сюрпризов он еще принесет).
P.S. Если после прочтения статьи ваш вопрос с MySQL Error 1064 остался нерешенным, то задавайте его на форуме SQLinfo
Дата публикации: 25.11.2013
© Все права на данную статью принадлежат порталу SQLInfo.ru. Перепечатка в интернет-изданиях разрешается только с указанием автора и прямой ссылки на оригинальную статью. Перепечатка в бумажных изданиях допускается только с разрешения редакции.
- 2
Решение распространенной проблемы с кодом ошибки #1064
Если при импорте БД у Вас возникла ошибка:#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 '?»?
Возникает данная ошибка при использовании phpmyadmin для импортирования БД, в связи с присутствием в дампе непечатных символов (стоит заметить, что ошибка не появляется при использовании консольной утилиты mysql для импорта БД). Проблема решается следующим образом:
Откройте дамп БД с помощью любого текстового редактора.
Начиная с начала файла, удалите все строки-комментарии до первой исполняемой строки sql. Например в дампе стандартной сборке CMS Joomla первым исполняемым запросом является запрос на создание таблицы jos_banner:
CREATE TABLE `jos_banner` (
Сохраните файл и попробуйте импортировать дамп снова.
