Трабл с дампом БД
Ты уже выяснил, что такое 1064 ошибка или надеешься, что форумчане сделают это за тебя?
1064 MYSQL error:You have an error in your SQL syntaxпроявляется на 650 тысяч какой-то-там строке, редакторов, которые бы смогли выдать мне эту строку из 5-гигового файла, у меня нет
в общем-то, интересует, почему мог получиться битый дамп... выглядит на первый взгляд нормально, но 5 гигов, конечно, просмотреть невозможно
проявляется на 650 тысяч какой-то-там строке, редакторов, которые бы смогли выдать мне эту строку из 5-гигового файла, у меня нетВ UNIX есть утилиты, позволяющие получить данную строку. Если ты не можешь их найти, то в конце концов ты сам можешь написать простую программку для этого.
P.S. Почему блюститель русского языка все предложения начинает с маленькой буквы?
Это заблуждение. В Programming был славный тред, где Darkgray нам доказывал преимущества Excel перед простыми утилитами UNIX. И там я и приводили примеры того, где Excel обосрётся, а простые конвейеры справятся. Твой случай - это еще один пример.
В UNIX есть утилиты, позволяющие получить данную строку. Если ты не можешь их найти, то в конце концов ты сам можешь написать простую программку для этого.Сегодня мне почему-то хочется тебе помочь. Вот два примера (XXX - номер строки):
awk '{ if (NR == XXX) print $0 }' < mysql.dump
nl -n ln XXX | egrep '^26\ '
Выбирай какой больше нравится.
Excel обосрётся, а простые конвейеры справятся. Твой случайТакие случаи наиболее характерны для UNIX-like систем и программ.
tailу придётся считать весь файл, это отстой. Возможно head XXX | tail -1 будет лучше.
Локально пытался на пхп выдернуть при помощи
<?php
$handle = fopen ("database.sql", "r");
$i=0;
while ($i<650587) {
$buffer = fgets($handle, 4096);
$i++;
}
echo $buffer;
fclose ($handle);
?>
но не то... при разных значениях "4096" выдает разные строки, хотя везде этот пример приведен именно как построчное чтение строк из файла
давай мыло, пришлю тебе tail и head, вещь
да ну, его прибьёт SIGPIPE
> да ну, его прибьёт SIGPIPE
Каким образом tail узнаёт что данная строка является n-нной от конца файла?
rodiontsev.ru
только вот что с ним делать:)
только вот что с ним делать:)
но похоже, это фича GNU tail
#include <stdio.h>
///////////////
// Правильная строка запроса - command_name file_name line_number
int main(int n_sw,char *msw[])
{
int a,b,c,nn;
FILE *ff;
if( n_sw<3 || sscanf(msw[2],"%d",&nn)==0 )
{
printf("Error command line\r\n");
return -1;
}
ff = fopen(msw[1],"rb");
if(!ff)
{
printf("Can't open file %s for reading!\r\n",msw[1]);
return -2;
}
for(c=fgetc(ffa=0; c!=-1; c=fgetc(ff
{
if(a==(nn-1
if(c!='\n')
printf("%c"char) c);
else
break;
if(c=='\n')
a++;
}
if(a<(nn-1
printf("Sorry, line not found!\r\n");
fclose(ff);
return 0;
}
Конечно, лучше прямее написать, но лень...
Блин, ну и глючит меня - всё нормально.
Надо идти в л&c, думать сегодня противопоказано
хотя щас поищу...
$cat -n filename | head -LastLineNumber | tail -LinesNumber
P.S. Могу ещё прислать компилятор
есть шикарные грепы под виндой
Интересно, сколько раз должен человек должен повторить, что сидит под виндой, чтобы ему перестали такие варианты предлагать?
Но если вариант очень хороший?
Интересно, сколько раз должен человек должен повторить, что сидит под виндой, чтобы ему перестали такие варианты предлагать?Сервер MySQL у него тоже под виндой?
локально - да, в чем проблема?
Может и не лучший вариант, но тем не менее...
Каким образом tail узнаёт что данная строка является n-нной от конца файла?Например, запустит "wc -l "
кстати, то, что ты прислал, не пашет, ибо не найден cygintl-3.dll
Вопрос: в mysql название базы может содержать дефис?
Затыкается на
CREATE DATABASE /*!32312 IF NOT EXISTS*/ mnogosearch-db;
в обратных кавычках напиши
о как... а я-то думаю - зачем опция в экспорте про кавычки
жжошнах!
Оставить комментарий
uncle17
есть два дампа - PG и MySQLпри заливке MySQL выдает 1064 ошибку где-то на 10 процентах, PG сам не смотрел, но админы говорят, что тоже не льется. С чем может быть связано вообще и есть ли шанс восстановить?
а то жалко - MySQL на 5 гигов и PG на гиг...