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

mysql logo (110 x 57)

Είδαμε κάτι αντίστοιχο για τον 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 .net connector: Authentication with old password no longer supported, use 4.1 style passwords.

mysql logo (110 x 57)

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

Συνεχίστε την ανάγνωση του «mysql .net connector: Authentication with old password no longer supported, use 4.1 style passwords.»

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

mysql logo (110 x 57)

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

Συνεχίστε την ανάγνωση του «mysql & linux: προσθήκη χρήστη»

plug and play json restful api για mysql και όχι μόνο

php logo

Όσοι γνωρίζετε το https://github.com/alixaxel/ArrestDB δεν χρειάζεται να διαβάσετε παρακάτω.

Όσοι όμως δεν το έχετε ξανακούσει, αξίζει να διαβάσετε τη συνέχεια και ίσως να το δοκιμάσετε.

Ας υποθέσουμε ότι έχετε σχεδιάσει μια φανταστική database – σε MySql, PostgreSQL ή SQLite και αναρωτιέστε πως θα τη διασυνδέσετε με τη mobile / web / desktop εφαρμογή σας. Τρόποι υπάρχουν πάμπολλοι, άλλοι πιο δύσκολοι, άλλοι πιο εύκολοι, άλλοι σωστοί και άλλοι προβληματικοί.

Ένας από αυτούς, εξαιρετικά απλός και γρήγορος, είναι το ArrestDB που υπόσχεται να χτίσει σε μηδέν χρόνο ένα RESTful API γύρω από την database σας με μία γραμμή κώδικα – που αφορά στο connection string της db.

Το project είναι γραμμένο σε PHP αλλά δεν χρειάζεται να γνωρίζετε τίποτα γι αυτήν, εκτός από το γεγονός ότι θα πρέπει να διαθέτετε την v5.4 – κάπως περιοριστικό αφού η 5.3 εξακολουθεί να μεσουρανεί.

Για την εγκατάσταση κοπιάρετε στον web server σας το ένα και μοναδικό αρχείο του ArrestDB (index.php), τροποποιείτε καταλλήλως την πρώτη γραμμή του, φτιάχνετε και ένα htaccess για το routing και είστε έτοιμοι να δοκιμάσετε το api. Αν έχετε ξαναπαίξει με άλλο api, δεν θα βρείτε πρακτικά διαφορές, είναι έτσι όπως το φαντάζεστε:

  • Για να δείτε τον πελάτη του πίνακα customer με όνομα Nick:
    GET http://api.example.com/customer/name/Nick/
  • Για να τροποποιήσετε τον πελάτη του πίνακα customer με κωδικό 100:
    PUT http://api.example.com/customer/100/

Για security, ούτε λόγος, στην καλύτερη, ότι προσφέρει ο apache. Ίσως οι πιο απαιτητικοί από εσάς να μην καλυφθούν, αλλά ο,τιδήποτε πιο advanced απαιτεί σαφώς περισσότερο κόπο, κι έτσι το ArrestDB καθίσταται μοναδικό για testing και για ταχύτατη υλοποίηση.

εγκατάσταση του xampp στα windows

xampp logo

Το xampp συγκεντρώνει όλα όσα χρειάζεστε για να μετατρέψετε το pc σας σε web server που να υποστηρίζει τα συνήθη γουεμπικά προαπαιτούμενα apache, php, mysql των πιο δημοφιλών open source web application. Ακόμα κι αν το τελικό προϊόν σας τρέξει σε επαγγελματικό web host, θα χρειαστείτε το xampp για το development. Ακολούθως, θα δείξουμε την εγκατάσταση του xampp στα windows καθώς και μερικές βασικές ρυθμίσεις.

Συνεχίστε την ανάγνωση του «εγκατάσταση του xampp στα windows»