Aktualności:

Czy uczestniczysz w Projekcie miesiąca?

Menu główne

Kopie bazy danych

Zaczęty przez Mchl, 21 Maj 2006, 11:10

Mchl

W związku z ostatnimi zdarzeniami i jak się okazało niesprawnym systemem tworzenia kopii zapasowych udostępnianego przez firmę hostingową mam pytanie.
Czy zna ktoś sposób na automatyczne okresowe archiwizowanie bazy danych mySQL i wysyłanie kopii pod wskazany adres email?

Najlepszy byłby skrpyt php lub cgi, który mogę wywoływać przy pomocy cron tab.

W nagłych wypadkach wzywać przez: mail: mchlpl[at]gmail.com | PM|mchl[a]boincatpoland.org

krzygaj

a może samym skryptem w bashu?
mysqldump + mail
np:
./mysqldump -u [user] -p [haslo] --databases [baza danych] --default-character-set=utf8 > /baza.sql

mail [adres@email.pl] -s [temat] < /baza.sql

oczywiscie mozna to wywolac cronem :)

Mchl

Siedziałem właśnie dziś nad tym i bez przerwy dostawałem błąd:
Enter password: mysqldump: Got error: 1045: Access denied for user 'abc'@'localhost' (using password: NO) when trying to connect

A gdyby tak się dało, to byłoby całkiem fajnie, bo efekt dziłania skryptu dostaje bezpośrednio na maila. Musze z supportem zagadać o co chodzi. Czyżbym nie miał dostęu do bazy danych z poziomu crona?

W nagłych wypadkach wzywać przez: mail: mchlpl[at]gmail.com | PM|mchl[a]boincatpoland.org

krzygaj

Enter password: mysqldump: Got error: 1045: Access denied for user 'abc'@'localhost' [b](using password: NO)[/b] when trying to connect

hmmm to mnie zastanawia nie wiem czy zapodajesz haslo oraz czy uzytkownik abc ma prawa logowania sie do bazy z localhosta

Mchl

Przećwiczyłem różne kombinacje. Tworzyłem nowych użytkowników, nadawałem im uprawnienia itd. Hasło oczywiście też podawałem. Coś dziwnego jednym słowem (dwoma).

W nagłych wypadkach wzywać przez: mail: mchlpl[at]gmail.com | PM|mchl[a]boincatpoland.org

krzygaj

chyba mój błąd ;)
powinno być:
./mysqldump -u [user] --password=[haslo] --databases [baza danych] --default-character-set=utf8 > /baza.sql
Sorki za pomyłke :)

Mchl

Różne opcje już przećwiczyłem. Żeby było śmieszniej dziś dostałem pełną kopię bazy z 20. maja. Da się odzyskać jeszcze kilka rzeczy dzięki temu.

W nagłych wypadkach wzywać przez: mail: mchlpl[at]gmail.com | PM|mchl[a]boincatpoland.org

krzygaj

hmmmm... sprawa bardzo dziwna. Przed chwila wykonalem na swoim mysql takie kroki i dzialalo:
- zalogowalem sie z konsoli do mysqla: ./mysql -u [user] -p
- zalozylem konto: grant all privileges on [baza].* to 'krzys'@'%' identified by '54321';
i wylogowalem sie, nastepnie:
- ./mysqldump -u krzys --password=54321 --database [baza] > /plik.sql
i wszystko podzialalo bez problemu
Jeżeli to nie zadziała to ja już nie wiem co jest grane 8O
Zawsze można napisać skrypt do pakowania całej bazy mysql i wysyłać tak spakowany plik na maila. :)

Mchl

Heh. U mnie lokalnie też nie mam z tym problemów. Widać coś tam naustawiali na lewą stronę. Mam podejrzenie, że serwer odpowiedzilany za cron ma inne IP niż serwer bazy danych, a dostę do DB jest domyślny tylko z localhost... lekka paranoja... mogliby chociaż własne serwery jeszcze dodać.

W nagłych wypadkach wzywać przez: mail: mchlpl[at]gmail.com | PM|mchl[a]boincatpoland.org

Mchl

Miałem racje. Dwa różne serwery, więc przede wszystkim potrzebny był parametr -h xxx.xxx.xxx.xxx

W nagłych wypadkach wzywać przez: mail: mchlpl[at]gmail.com | PM|mchl[a]boincatpoland.org