Κατηγορία: mysql

  • προγραμματισμένο mysql backup

    προγραμματισμένο mysql backup

    Είδαμε κάτι αντίστοιχο για τον sql server express, αλλά ήρθε και η ώρα του mysql backup. Όταν μιλάμε για mysql, μιλάμε για linux κι όταν μιλάμε για linux, ανοίγουμε την κονσόλα.

    mysql backup, όλα και γρήγορα!

    Ας δούμε κατ’αρχήν πως κάνουμε παίρνουμε στα γρήγορα ένα backup για όλες τις databases:

    mysqldump -u root -p --all-databases > alldb.sql

    Θα σας ζητηθεί ο κωδικός του root.

    Για να μην ζητάει τον κωδικό του root (π.χ. cron), θα πρέπει να κολλήσετε δίπλα στο -p τον κωδικό:

    mysqldump -u root -pSECRET --all-databases > alldb.sql

    …και συμπίεση;

    Προφανώς θα θέλετε να συμπιέσετε το αρχείο, κάτι που χάρη στην κονσόλα και το piping, γίνεται με μιας, κάπως έτσι:

    mysqldump -u root -pSECRET --all-databases | bzip2 -c > alldb.$(date +%Y-%m-%d-%H.%M.%S).sql.bz2

    Παρατηρήστε την απλότητα με την οποία δηλώνουμε την ημερομηνιακή μορφή του συμπιεσμένου:

    $(date +%Y-%m-%d-%H.%M.%S)

    ή μήπως καλύτερα σκριπτάκι;

    Συχνά, είναι προτιμότερο να διατηρούμε αντίγραφο της κάθε database σε χωριστό αρχείο. Ακολουθεί ένα ωραιότατο σκριπτάκι bash, το οποίο διαβάζει τα ονόματα των βάσεων δεδομένων και για κάθε μια από αυτές – πλην των συστημικών του mysql – λαμβάνει αντίγραφο και το ζιπάρει!

    #!/bin/bash
    
    USER="root"
    PASSWORD="SECRET"
    
    databases=`mysql -u $USER -p$PASSWORD -e "SHOW DATABASES;" | tr -d "| " | grep -v Database`
    
    for db in $databases; do
        if [[ "$db" != "information_schema" ]] && [[ "$db" != "performance_schema" ]] && [[ "$db" != "mysql" ]] && [[ "$db" != _* ]] ; then
            echo "Dumping database: $db"
            OUTPUT=`date +%Y%m%d`.$db.sql
            mysqldump -u $USER -p$PASSWORD --databases $db > $OUTPUT
            gzip $OUTPUT
        fi
    done
    

    Ονομάστε το σκριπτάκι backup και μην ξεχάσετε να το κάνετε εκτελέσιμο:

    chmod +x backup

    Τώρα, για να έχετε το κεφάλι σας ήσυχο βάλτε το και σε ένα κρον (crontab -e) και καλή ανάσταση:

    0 7 * * * /root/mysqlbackups/backup

     

  • mysql: πρωτομηνιά

    Ένα γρήγορο snippet, για την πρώτη του τρέχοντος μήνα στον mysql:

    DATE_FORMAT(NOW() ,'%Y-%m-01')

    Πιο πλήρες άρθρο είχαμε παλιότερα για τον sql server:

    sql server + ημερομηνίες

  • mysql .net connector: Authentication with old password no longer supported, use 4.1 style passwords.

    mysql .net connector: Authentication with old password no longer supported, use 4.1 style passwords.

    Αν συναντήσετε το exception “Authentication with old password no longer supported, use 4.1 style passwords.”, ίσως έχετε πέσει θύματα της αλλαγής του policy του mysql, ο οποίος απαιτεί ισχυρότερα password κατά τη διασύνδεση μέσω του .net connector. Οι λύσεις στο πρόβλημα είναι 2.

    (περισσότερα…)

  • mysql & linux: προσθήκη χρήστη

    mysql & linux: προσθήκη χρήστη

    Θα δείξουμε πως να προσθέσουμε νέο χρήστη στον mysql χρησιμοποιώντας την κονσόλα. Υποθέτουμε ότι ο mysql τρέχει σε σύστημα linux και ότι ο χρήστης jack που θέλουμε να φτιάξουμε απαιτεί select δικαιώματα στον πίνακα transaction της βάσης δεδομένων accounting.

    (περισσότερα…)