mysql parancssori futtatas

Fórumok

Sziasztok ,

Nagyon lama kerdesm van de egyszeruen kihagy mar az agyam.
Szal mysql adatbazisrol csinalok egy dump-ot a mysqldump hasznalataval.

"mysqldump -p -u user db_name> /var/www/db_name/db_name.sql"

fut is rendesen interaktivan (kerdezi a jelszot ), de en szeretnem , h ne kerdezzen jelszot (cron-al futtatnam) de nem jovok ra , hogy hogy kell felparameterezni ehhez..

Koszi

Sztupi

Hozzászólások

mysqldump -pqrvatitkosjelszo -u user db_name> /var/www/db_name/db_name.sql

A $HOME-ba .my.cnf password és user opciókkal.

Akkor ott valami nagyon nincs rendben:

Ez van a ~/.my.cnf -ben ?

[mysqldump]
user = ********
password = *********

A megfelelő home könyvtárban van? Pl. ha cronból fut a script, root-ként, akkor a /root/-ban kellene lennie. Ha sudo-val fut, akkor pedig a sudo-zó homejában.
Kéri a jelszót, vagy a megadottat nem fogadja el?

A fentiek után a `mysqldump -u ********` -nak jelszó (-p) nélkül kellene mennie. A .my.cnf jogosultságai legyen olyan, hogy más ne tudja olvasni.

--
The Net is indeed vast and infinite...
http://gablog.eu

na a $USER/Home/.my.cnf ben ez van

[mysqldump]
user = user
password = valami

ha -p vel adom ki akkor keri a jelszot , s azzal megy is
ha -p nelkul adom ki akkor azt mondja ,h :
mysqldump: Got error: 1045: Access denied for user 'vick'@'localhost' (using password: NO) when trying to connect

sztupi

hmmm
a formája pedig igy néz ki a filenak:
"
[mysqldump]
user = root
password = hiperszupertitkosjelszo

"

?
nézd meg
Esetleg
"strace mysqldump --debug-info adatb 2> mydmp_dbg.txt"
"cat mydmp_dbg.txt |grep cnf"

meg kell nézni hogy mely fileokban keresgél
olyan mintha nem venné figyelembe a pw részt.

ime az eredmeny

stat64("/etc/mysql/my.cnf", 0xbffff4fc) = -1 ENOENT (No such file or directory)
stat64("/root/.my.cnf", 0xbffff4fc) = -1 ENOENT (No such file or directory)
stat64("/usr/etc/my.cnf", 0xbffff4fc) = -1 ENOENT (No such file or directory)
fcntl64(4, F_GETFD) = 0
fcntl64(4, F_SETFD, FD_CLOEXEC) = 0
fcntl64(4, F_SETFL, O_RDONLY) = 0
fcntl64(4, F_GETFL) = 0x2 (flags O_RDWR)

a válasz pedig ott van benne:
stat64("/root/.my.cnf", 0xbffff4fc) = -1 ENOENT (No such file or directory)

Azaz root ként futtatod - vagy valamiért a root homejában keresi az adott filet.

Jelenleg ha a /root/.my.cnf fileba irod a fent emlitett részt akkor fog müködni.

Gabi

Vigyázz, mert ha jelszóval futtatod, akkor a logban is, és a process listában is látszani fog a jelszó. Az első ellen védelem, ha a logot nem mindenki tudja olvasni, a második ellen mondjuk egy grsec hide processes from user is elég, azonban egyik sem életbiztosítás szerintem. Én erre valami olyan programot használnék, ami eltakarja magát a folyamatot, például backup-manager, de ennek a konfigjában ugyanúgy benne kell lennie a jelszónak plain formában, szóval csinálj egy usert , akinek csak olvasási joga van az adatbázisra.
Ha esetleg tud erre valaki jó megoldást ami biztonságos, az engem is érdekelne.