1 (изменено: Manul_87, 2010-06-13 18:02:04)

Тема: ошибка 1064 при считывании с дампа

Добрый день. При переносе базы данных с одного сервера на другой столкнулся с проблемой:

При попытке запустить дамп в консоли выводиться ошибка следующего содержания:


ERROR 1064 (42000) at line 4: 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 _dire' at line 1

То есть синтаксическая ошибка.

Вот первые строчки дампа:


Код_дампа сказал:

-- MySQL dump 8.23
--
-- Host: localhost    Database: almatex
---------------------------------------------------------
-- Server version    3.23.58

--
-- Table structure for table `_directories`
--

CREATE TABLE _directories (
  id int(11) NOT NULL auto_increment,
  proper int(11) NOT NULL default '0',
  name varchar(255) NOT NULL default '',
  path varchar(255) NOT NULL default '',
  date date NOT NULL default '0000-00-00',
  relation int(11) NOT NULL default '0',
  publication tinyint(1) NOT NULL default '0',
  send tinyint(1) NOT NULL default '1',
  content text,
  template varchar(255) NOT NULL default '',
  summary text,
  keywords text,
  description text,
  params varchar(250) NOT NULL default '',
  PRIMARY KEY  (id),
  KEY relation (relation)
) TYPE=MyISAM;

--
-- Dumping data for table `_directories`
--


INSERT INTO _directories VALUES (3,2,'О магазине','about','2004-01-15',0,1,0,'<H1>О магазине</H1>\r\n<P>ООО «.........» образована в 1997г. И имеет большой опыт работы в этой сфере. В магазине......)

В чем может быть проблема?

Может ли быть проблема из-за версии mysql?

На сервере куда заливаю стоит свежая: 5.0.70

а там где сливал 3.23.58

Подскажите пожалуйста как можно решить эту проблему?

2

Re: ошибка 1064 при считывании с дампа

Разобрался что проблема в комментариях, видимо сервер не понимает знаки комментария -- и принимает их за ошибку. Но как от этого избавиться не ясно, комментариев слишком много, не удалить в ручную.

3

Re: ошибка 1064 при считывании с дампа

проблему решил заменой всех "--" на "#", но появилась новая ошибка:


ERROR 1064 (42000) at line 343445: 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 'show tinyint(1) NOT NULL default '0',
  PRIMARY KEY  (id)
) TYPE=MyISAM' at line 9

где тут нарушения синтаксиса, не понятно, вот эта часть дампа:

CREATE TABLE comments (
  id int(10) unsigned NOT NULL auto_increment,
  user_login varchar(255) default NULL,
  cname varchar(255) NOT NULL default '',
  comment text,
  comment_ts bigint(20) unsigned default NULL,
  answer text,
  answer_ts bigint(20) unsigned default NULL,
  show tinyint(1) NOT NULL default '0',
  PRIMARY KEY  (id)
) TYPE=MyISAM;

Помогите понять, в чем может быть тут дело?

4

Re: ошибка 1064 при считывании с дампа

Manul_87
show - зарезервированное слово в MySQL, его нельзя использовать без обрамления в косые кавычки. Отредактируйте так:
[mono]`show` tinyint(1) NOT NULL default '0',[/mono]

Комментарии начинающиеся с двух дефисов не понимает MySQL версии ранее 3.23.3. Не могу объяснить как эти комментарии не понимает MySQL 5.0.

5

Re: ошибка 1064 при считывании с дампа

спасибо, помогло!

6 (изменено: Manul_87, 2010-06-15 20:46:36)

Re: ошибка 1064 при считывании с дампа

Заметил ещё одну проблему, причем крупную.

После считывания дампа на сайте не отображается русский текст. Грубо говоря там где ФИО написано по английски все нормально, а там где по русски - текста по просту нет. То есть как будто ячейка пустая, что это может быть?

Помогите пожалуйста, очень надо разобраться!!!

7

Re: ошибка 1064 при считывании с дампа

Manul_87
В phpMyAdmin посмотрите как данные выглядят. Может там действительно ничего нет.

Посмотрите в какой кодировке данные в .sql дампе. Если они в ANSI, то при импорте в phpMyAdmin необходимо выбрать кодировку файла windows-1251.