1

Тема: Помогите с MySQL, ошибка 1064

При попытке импортировать дам из денвера (MySQL 5) с c SQL export compatibility: MYSQL40 на хост с MySQL 4 выдает ошибку:
SQL-запрос:

-- phpMyAdmin SQL Dump
-- version 2.6.1
-- http://www.phpmyadmin.net
--
-- Хост: localhost
-- Время создания: Апр 01 2009 г., 19:51
-- Версия сервера: 5.0.45
-- Версия PHP: 5.2.4
--
-- БД: `************`
--
CREATE DATABASE `*******` DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci;


Ответ 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 CHARACTER SET cp1251 COLLATE cp1251_general_ci' at line

2

Re: Помогите с MySQL, ошибка 1064

Gandalf
При создании дампа в режиме совместимости MYSQL40, строк с кодировками уровня таблиц быть не должно. Попробуйте создать дамп еще раз.

3

Re: Помогите с MySQL, ошибка 1064

прошу прощения, но я слабо разбираюсь в этом, можно поподробнее для чайника. Версия для дампа phpadmin 2.6.1

4

Re: Помогите с MySQL, ошибка 1064

Gandalf
На странице экспорта в phpMyAdmin выберите режим совместимости MYSQL40. В этом случае дамп создастся без кодировок и нормально импортируется на втором сервере.

5 (изменено: Gandalf, 2009-04-01 20:52:02)

Re: Помогите с MySQL, ошибка 1064

Hanut сказал:

Gandalf
На странице экспорта в phpMyAdmin выберите режим совместимости MYSQL40. В этом случае дамп создастся без кодировок и нормально импортируется на втором сервере.

Я так и делаю, а потом возникает эта ошибка!!!

"При попытке импортировать дам из денвера (MySQL 5) с c SQL export compatibility: MYSQL40 на хост с MySQL 4 выдает ошибку"

6

Re: Помогите с MySQL, ошибка 1064

Сейчас поробую более подробно описать проблему: я сделал сайт на CMS DLE 7.5, теперь пытаюсь залить его на хостинг Агава. Соотвественно пытаюсь залить первым делом базу MySQL, так как установить CMS не предоставляется возможным, хост не дает возможность создать базу при установке скрипта. У Агавы версия сервера MySQL: 4.0.27-log, версия клиента MySQL - 4.1.20. Я делал на локальной машине через денвер, на нем стоит MySQL 5 версии. Делаю дамп через PHPadmin на денвере(SQL export compatibility: MYSQL40), пытаюсь залить дамп также через PHPadmin на хост и он выдает мне эту ошибку.

7

Re: Помогите с MySQL, ошибка 1064

Gandalf
Все понятно, но при создании дампа в режиме совместимости MYSQL40 строк вида: DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci - быть не должно. Я не имею понятия, как они получаются.

Но проблему можно решить проще: откройте дамп текстовым редактором (например Notepad++), и удалите кодировки уровня таблиц и движок. То есть везде, где вы видите cp1251, cp1251_general_ci или ENGINE.

Структура должны выглядеть примерно так:

CREATE TABLE IF NOT EXISTS `table` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `text` tinytext NOT NULL,
  `price` decimal(10,2) unsigned NOT NULL,
  PRIMARY KEY (`id`)
) AUTO_INCREMENT=4 ;

8

Re: Помогите с MySQL, ошибка 1064

Огромное спасибо за помощь! smile Но мне уже с Агавы помогли, они каким-то чудесным образом залил бэкап моей базы на хост и импортировали его! Служба поддержки у них просто отличная! Попробую теперь выяснить у них как они это сделали smile

9 (изменено: Hanut, 2009-04-09 19:06:05)

Re: Помогите с MySQL, ошибка 1064

Здравствуйте подскажите пожалуйста чайнику решить проблему импорта базы.Собственно ошибка:

Ответ 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 '?»?

CREATE TABLE `jos_banner` (
  `bid` int(11) NOT NULL auto_increment,
' at line 1

10

Re: Помогите с MySQL, ошибка 1064

volik777
Поищите ту часть дампа, откуда это вылезло - '?»?
В структуре таблицы ошибок не видно.

11

Re: Помогите с MySQL, ошибка 1064

Hanut

Разобрался методом научного тыка. Спасибо. При смене кодировки sql файла с utf-8 на ANSI и импорируемого фаила с utf-8 на cp 1251 всё заработало.