Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Bakup bazy danych z poziomu php
Forum PHP.pl > Forum > Przedszkole
karmelik
Witam, mam skrypt który dodaje i usuwa produkty z bazy danych sklepu internetowego, potrzebuje do niego dopisac modul codziennego backup'u bazy danych. Znalazlem w internecie jedno rozwiazanie ale baza sie nie chciala zaimportowac, znacie jakies sprawdzone sposoby ?
Turson
cron co 24h z poleceniem mysqldump
Rysh
Ja używam skryptu napisanego w bash'u: dump bazy danych, pakuje, wysyła meilem na adres zdefiniowany - to wszystko daily cron.
Wszystko ładnie pięknie działa i kopia trzymana jest na niezależnym hostingu.
Pyton_000
Ja sobie zasysam diff z VPSa codziennie o 9 rano jak siadam do pracy smile.gif
karmelik
@rysh fajne rozwiazanie ale moglbys pokazac ten skrypt ?
myslqdump sprobowalem wlasnie:
  1. exec('mysqldump -u '.$user.' -p['.$haslo.'] ['.$nazwa_bazy.'] > plik.sql')

utworzy zostal plik.sql ktory ma wielkosc 0
szybkie rozwiazanie, chociaz lepiej byloby bez exec a cos uniwersalnego zrobic na serwery z zablokowanym exec, ale nie wazne, to niestety nie dziala mi, cos chyba robie zle ?
Pyton_000
bez [ i ]
karmelik
chyba nadal jest cos nie tak, moj dokladny kod:
  1. exec('mysqldump -u '.$db_config['username'].' -p '.$db_config['password'].' '.$db_config['db_name'].' > plik.sql');


nadal sie tworzy plik i nadal jest wielkosci 0 ;/
konfiguracja jest prawidlowa, pobierana prosto z konfiguracji magento ktore stoi i wykorzystywana do mojej aplikacji (te same zmienne do polaczenia z baza danych), sprawdzalem, zawieraja prawidlowe wartosci
Pyton_000
  1. var_dump('mysqldump -u '.$db_config['username'].' -p '.$db_config['password'].' '.$db_config['db_name'].' > plik.sql');

prawdę Ci powie

PS. bez odstępów po -p i -u
karmelik
Robiłem już w kazdej mozliwosci, z odstepami, bez, z odstepem po prawo, po lewo, wyechowalem sobie czy napewno jest dobre i momo wszystko nadal tworzy mi sie plik rozmiaru 0 sad.gif zalogowalem sie przed chwila do phpmyadmin z tych danych i nie mam juz zadnych pomyslow sad.gif
Pyton_000
no to jeszcze
  1. var_dump(exec('mysqldump -u '.$db_config['username'].' -p '.$db_config['password'].' '.$db_config['db_name'].' > plik.sql'));
karmelik
Zwróciło:
  1. string(0) ""

probowalem z kazda mozliwoscia, ze spacjami, bez, spacja po lewo, po prawo tylko i ciagle to samo. Moze na serwerze czegos nie ma albo exec() blokuje cos lub sam jest zablokowany ?
Rysh
Cytat(karmelik @ 16.12.2014, 14:35:38 ) *
@rysh fajne rozwiazanie ale moglbys pokazac ten skrypt ?

Oczywiście:
Kod
#!/bin/bash

umask 0077

target_email='twoj@adres.email'

sql_user='db_login'
sql_haslo='db_pass'
sql_baza='db_name'

temp_plik=$HOME"/"$(date "+domena.pl-%F_%H-%M-%S.mysql.gz")
/usr/bin/mysqldump --add-drop-table --add-locks --create-options \
        --disable-keys --extended-insert --lock-tables --quick \
        --set-charset --default-character-set=utf8 \
        -p$sql_haslo -u$sql_user $sql_baza | /bin/gzip > $temp_plik

/usr/bin/mutt -e "set record = ''" $target_email -a $temp_plik -s $temp_plik </dev/null

/bin/mv $temp_plik $HOME/backup/

chmod +x backup.sh
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.