Bekap&Restore MySQL базе (или база) кроз командну линију
Кад причам о командној линији – причам о командој линији на Линуксu – како је на Виндовсу не знам нити ме занима али контам да је синтакса иста.
Бекап података је безбедан – сем наравно ако бекапом не прегазите неки други фајл (зато сам у свим примерима доле ставио да се бекап ради у фолдер /tmp) али кад радите повратак података отворите четворо очију а ако имате курје отворите и њих – јер ако имате функционалну базу података па грешком урадите повратак исте можете направити јуначки карамбол и остати без података.
Бекап базе података можете радити као root корисник или као специфични корисник који има привилегије над датом mysql базом и ради се ради командом…
# Бекап само једне базе података која се зове 'naziv_baze'
mysqldump -u DB_KORISNIK -p naziv_baze > /tmp/BEKAP_naziv_baze.sql
Кад се ради повратак података (restore) база ће бити креирана под корисником који је покренуо mysql (корисник иза свича -u) ако дати корисник има привилегије да креира базе – а ако нема, направите празну базу па над њом урадите повратак података. Као и са сваким повратак операцијама – опрезно!
# Опоравак података, односно импорт у базу која се зове 'naziv_baze2'
mysql -u DB_KORISNIK -p naziv_baze2 < /tmp/BEKAP_naziv_baze.sql
Бекап над више база података се може радити над базама које корисник види у својој шеми, односно над било којом базом ако бекап покреће root корисник у mysql-у. Бекап више база података од једном се може урадити командом:
# Бекап две базе 'naziv_baze1' и 'naziv_baze2' из једног позива
mysqldump -u DB_KORISNIK -p --databases naziv_baze1 naziv_baze2 > /tmp/BEKAP_baza1i2.sql
Бекап комплет свих база података се може урадити ако тај бекап покреће root корисник у mysql-у. Ако бекап покреће специфични корисник (као што је у примеру корисник DB_KORISNIK) направиће се бекап свих база над којим дати корисник има привилегије.
# Бекап свих база над којима корисник 'DB_KORISNIK' има привилегије mysqldump -u DB_KORISNIK -p --all-databases > /tmp/BEKAP_svih_baza.sql # BБекап свих база може да ради root корисника mysqldump -u root -p --all-databases > /tmp/BEKAP_komplet_svih_baza.sql
Опоравак података само једне базе података из бекапа где сте бекаповали све или више база података се ради следећом командом…
# Restore тј импорт само једне базе из бекапа у којем је бекап више база mysql -u DB_KORISNIK -p --one-database naziv_baze1 < /tmp/BEKAP_svih_baza.sql # Ако не знате које све базе имате у бекапу, то можете проверити командом grep -i "Current database:" BEKAP_svih_baza.sql