Problem znaku \ pri obnove databaze MySQL

Honza Pazdziora adelton na fi.muni.cz
Úterý Listopad 27 15:13:00 CET 2001


On 27 Nov 2001 00:21:19 -0800, Oto 'tapik' Buchta <tapik na buchtovi.cz> wrote:

> uz jste se nekdo setkal s tim, ze databaze zazalohovana pomoci
> mysqldump , u ktereho nebylo pouzito parametru --tab, nesla obnovit?
> Jak jsem si vsiml, tak mysqlimport potrebuje soubory ve formatu, ktery
> vytvari mysqldump S paramtrem --tab, kdezto bez nej se ma pouzit
> klasicke mysql <zazalohovana_databaze_do_souboru.sql

Ale pouziti mysqlimport a mysql jsou dve rozdilne veci, a tomu taky
odpovida, jakym zpusobem se ma delat ten dump.

> Dlouho jsem premyslel, proc mi to uprostred souboru haze hlasky typu  
> $mysql -u mysql -D db -h localhost </tmp/dialogus.sql.tapik
> ERROR 2005 at line 51: Unknown MySQL Server Host 'gkfokgkof' (2)
> a podobne. Nakonec se mi podarilo tak nejak prijit na to, ze radky s
> insertem, ktere obsahuji znak '\' (napriklad v sequenci \n nebo \' -
> retezce predane pomoci JDBC), vykazuji tyto problemy. Jejich
> zakomentovani pak znamenalo, ze vse uspesne proslo.

insert into tabulka values ('jezek\nkrtek') zadano na prikazove radce
mysql vytvori zaznam s newlinem uprostred. Tohle je take retezec,
ktery z toho vytvori mysqldump. Takze pokud se ten vstup mysqldump
da zpatky na vstup mysql, tak opet vytvori spravne retezec s
newlinem.

> Mohl by mi nekdo, prosim, prozradit, v cem delam chybu?

A v cem je problem? Ze neco vyexportovane pomoci mysqldump bez
patricnych aprametru nejde natahnout zpatky pomoci mysqlimport?
Nebo?

-- 
------------------------------------------------------------------------
 Honza Pazdziora | adelton na fi.muni.cz | http://www.fi.muni.cz/~adelton/
 .project: Perl, mod_perl, DBI, Oracle, auth. WWW servers, XML/XSL, ...
Petition for a Software Patent Free Europe http://petition.eurolinux.org
------------------------------------------------------------------------


Další informace o konferenci Test