Backup σε MySQL

Ανώνυμος (χωρίς επαλήθευση) | Κυρ, 01/13/2008 - 23:19 | 3' | 5

OK. Φτιάξατε την πρώτη σας βάση δεδομένων στη MySQL και τη γεμίσατε δεδομένα. Πως θα πάρετε ένα backup;

Γι' αυτό, η ίδια η MySQL προσφέρει το εργαλείο mysqldump (στο mysql-client πακέτo).

BACKUP ΑΠΟ ΜΙΑ ΒΑΣΗ
Αν υποθέσουμε ότι έχετε μια βάση δεδομένων με το όνομα data, τότε για να πάρετε ένα backup δίνετε από τη γραμμή εντολών:

mysqldump -u root -h localhost data | gzip -9 > data.sql.gz

Αν συνδέεστε με άλλο λογαριασμό απλώς αντικαταστήστε το root..

Θα δημιουργηθεί ένα αρχείο data.sql.gz.

ΑΝΑΚΤΗΣΗ/RESTORE
Για να κάνετε restore της βάσης στο ίδιο μηχάνημα αρκεί να δώσετε από την κονσόλα, τις εξής εντολές

gunzip data.sql.gz
mysql -uroot data  < data.sql

Αν θέλετε να μεταφέρετε τη βάση δεδομένων σε άλλο μηχάνημα (όπου έχετε εγκαταστήσει τον MySQL-server) πρέπει πρώτα να φτιάξετε μια βάση δεδομένων με το ίδιο όνομα, από το prompt της MySQL:

$ mysql -uroot

Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 53 to server version: 5.0.22-Debian_0ubuntu6.06.3-log

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.
mysql> create database data;
Query OK, 1 row affected (0.00 sec)
mysql> quit



Κατόπιν δίνετε τις ίδιες με παραπάνω εντολές για να κάνετε restore.

BACKUP ΑΠΟ ΟΛΕΣ ΤΙΣ ΒΑΣΕΙΣ
Αν θέλετε να πάρετε backup από όλες τις βάσεις της MySQL, τότε δίνετε την εντολή:

mysqldump -u root -A | gzip -9 > all_dbs.sql




Ένα χρήσιμο αυτοματοποιημένο σκριπτάκι με πολύ περισσότερες δυνατότητες:

http://www.cyberciti.biz/tips/how-to-backup-mysql-databases- web-server-files-to-a-ftp-server-automatically.html

Tags
Δώσε αστέρια!
Σχόλια

Η ίδια δουλεία γίνεται πολύ πιο απλά με MySQL Admin αλλά πάντα είναι καλύτερο να έχεις τον κώδικα (ενσωματώνεται πιο εύκολα σε script)

Καλησπέρα,

έχω δοκιμάσει την παραπάνω εντολή με διάφορους τρόπους για να αποθηκεύσω τη βάση δεδομένων μου (mysql) αλλά μου βγάζει σφάλμα.

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use ...

 

 mysqldump -u user -h localhost -p password database |gzip > /home/user/data.sql.gz

 mysqldump -u user -h localhost -p password database |gzip -9 > /home/user/data.sql.gz

 mysqldump -u user -h localhost -p password database  > /home/user/data.sql

 mysqldump -u user -h localhost -p password database |gziz > data.sql.gz

Επίσης,με root user και password ,πάλι τα ίδια.

..και πάει λέγοντας..

 

Τι μπορώ να δοκιμάσω?

Ευχαριστώ!



Τελικά δούλεψε αυτό :

 

$ mysqldump -h localhost -u username -p database_name > backup_db.sql

 

ήθελε πρώτα -h localhost  και μετά username.

Βασικά η παράμετρος -h σου χρειάζεται μόνο στην περίπτωση που κάνεις remote mysqldump. Αν απλώς χρησιμοποιείς την τοπική βάση δεδομένων, μπορείς να την παραλείπεις, χωρίς πρόβλημα.