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
- Συνδεθείτε ή εγγραφείτε για να σχολιάσετε
Σχόλια
Ένα επίσης ωραίο scriptάκι είναι το ακόλουθο:
LINK
Η ίδια δουλεία γίνεται πολύ πιο απλά με 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. Αν απλώς χρησιμοποιείς την τοπική βάση δεδομένων, μπορείς να την παραλείπεις, χωρίς πρόβλημα.