Помогите с ошибкой mysql

Статус
В этой теме нельзя размещать новые ответы.
хехе
это phpmyadmin глючит
он не преваривает ---
комент обязательно должен стостоять из '-- ', т.е. после '--' обязательно 1 пробел
попробуй в окошко sql введи --- и получишь ошибку

через консоль дампится на ура
Код:
mysql -u root -p ruwikibooks < ~/ruwikibooks-20090330-category.sql

--------------
добавлено
кстати на вики phpmyadmin

есть такая строка , в разделе Fixes
(beta1) Better handling of MySQL comments (-- followed by any control character)

помоему это оно
 
Дело в том, что у меня и через консоль не импортирует.:bh:
Думал в пробеле дело. Создал для теста файлик 1.sql c текстом "---", и запустил:
Код:
cmd /k C:\xampp\mysql\bin\mysql.exe --user=root --password=pass --database=test < "C:\1.sql"
В ответ получил:
ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the ma
nual that corresponds to your MySQL server version for the right syntax to use n
ear '-' at line 1

C:\>
Получается не в phpmyadmin дело... :confused:

Стал гуглить на тему этого злощастного пробела:
В версии сервера MySQL 3.23.3 и выше поддерживается комментирование с помощью символов '--' - при условии, что за комментарием следует пробел.
2Виллен
Как у тебя получилось "на ура", если сам мускул не понимает таких комментариев (без пробела после 2-х "-")?
И это что ж получается, вики делает не стандартные дампы..? :eek:
 
ну не знаю
у меня SQL
| version | 5.0.45-Debian_1ubuntu3.1-log |
| version_comment | Debian etch distribution |
| version_compile_machine | i486 |
| version_compile_os | pc-linux-gnu |

до денвера доберусь вечером, попробую.

В общем проблема в несовместимости sql
заменяй по всем файлам по регулярке "^--." на "-- " (нотпад++ умеет).

Кстати а что будет если зайти в mysql
mysql -u root -p
и вбить в комадную строку эти --- ?
 
Кстати а что будет если зайти в mysql
mysql -u root -p
и вбить в комадную строку эти --- ?
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 966
Server version: 5.1.33-community MySQL Community Server (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> ---
->
Он так на любую абракадабру просто переходит на новую строку и все...

Если через send command - то ругается:
-> \g ---
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 '-

-
ego -' at line 1
->

А возможно как-то устранить эту "несовместимость"? Дело в том, что некоторые дампы размером под гиг и больше. Такое не то что в блокноте, PHP-скриптом править затруднительно (с точки зрения производительности компа).

PS Сразу забыл сказать - все это под WinXPSP3.
 
Он так на любую абракадабру просто переходит на новую строку и все...
потому что он считает не завершенной команду, т.е. ждет ;
если написать абракадабру с ; на конце то будет ошибка и без ключа \g

А возможно как-то устранить эту "несовместимость"?
обновить mysql сервер
попробовал в денвере, все работает (тут тоже 5 mysql )
Код:
mysql> show variables;
+---------------------------------+------------------------------------+
| Variable_name                   | Value                              |
+---------------------------------+------------------------------------+
.....
| version                         | 5.0.45-community-nt                |
| version_comment                 | MySQL Community Edition (GPL)      |
| version_compile_machine         | ia32                               |
| version_compile_os              | Win32                              |
| wait_timeout                    | 28800                              |
+---------------------------------+------------------------------------+
226 rows in set (0.00 sec)

mysql> ---
mysql> ---;
mysql> ---абракадабра
mysql> абракадабра
    -> ж
    -> ;
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 'абрак
адабр' at line 1
mysql> абракадабра;
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 'абрак
адабр' at line 1
mysql>
 
Хм... Странно, но у меня mysql более свежая:
Код:
[FONT=monospace]
mysql> show variables;
...
[/FONT]| version                         | 5.1.33-community                           |

| version_comment                 | MySQL Community Server (GPL)               |

| version_compile_machine         | ia32                                       |

| version_compile_os              | Win32                                      |

| wait_timeout                    | 28800                                      |

| warning_count                   | 1                                          |

+---------------------------------+--------------------------------------------+

270 rows in set, 1 warning (0.06 sec)

mysql> ---;
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 '---'
at line 1
mysql>
 
вначале дампа попробуйте вставить
PHP:
 SET FOREIGN_KEY_CHECKS=0;
а в конце
PHP:
 SET FOREIGN_KEY_CHECKS=1;
 
В итоге проделал вот что:
Раз у Виллен-а на денвере не возникло такой проблемы. Скачал его (денвер) и выковырил от туда сам mysql.exe (версии 5.0.45) и кинул в папку к xampp-у. И что же в итоге...
Код:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 53
Server version: 5.1.33-community MySQL Community Server (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> ---;
mysql>
:yahoo:
С подачи Гилыч-а нашел:
Очевидно, что в поздних версиях ужесточили отношение к комментам "--". Так как мой дамп прописывает их корректно:
Код:
-- MySQL dump 10.13  Distrib 5.1.33, for Win32 (ia32)
--
-- Host: localhost    Database: test
-- ------------------------------------------------------
-- Server version    5.1.33-community
Против дампов вики:
Код:
-- MySQL dump 8.23
--
-- Host: 10.0.6.27    Database: ruwikibooks
---------------------------------------------------------
-- Server version    4.0.40-wikimedia-log
Поэтому вижу только три решения.
1. Откатить мускул.
2. Править дампы.
3. Прикрутить Sypex Dumper и юзать его для импорта викивских дампов.

Правда, при импорте, он не умеет определять сравнение таблицы (если такая существует) и тупо меняет ее на указанную в конфиге. Но это даже не минус, а так... недочет. Выставил принудительно "binary" (при установке медиавики с этим сравнением таблицы создала) и все импортится "на ура".

Вот так вот. :)
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху