Backup σε MySQL

6 posts / 0 new
Τελευταία καταχώριση
Εικόνα: dimitris
dimitris
Απουσιάζω!
BabyTuxModerationGnu
Μέλος από: 1 Ιαν 1970
Πόντοι: 8475
Backup σε MySQL

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

Εικόνα: nasos
nasos
Απουσιάζω!
BabyTux
Μέλος από: 1 Ιαν 1970
Πόντοι: 0

Ένα επίσης ωραίο scriptάκι είναι το ακόλουθο:

LINK

Εικόνα: otttx33
otttx33
Απουσιάζω!
BabyTuxModerationGnu
Μέλος από: 1 Ιαν 1970
Πόντοι: 1535

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

Εικόνα: glinux
glinux
Απουσιάζω!
BabyTux
Μέλος από: 6 Αυγ 2011
Πόντοι: 10

Καλησπέρα,

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

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

 

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

Ευχαριστώ!

Εικόνα: glinux
glinux
Απουσιάζω!
BabyTux
Μέλος από: 6 Αυγ 2011
Πόντοι: 10

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

 

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

 

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

Εικόνα: dimitris
dimitris
Απουσιάζω!
BabyTuxModerationGnu
Μέλος από: 1 Ιαν 1970
Πόντοι: 8475

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