Dump di un DB con MySQL 5.6 e Windows 7/8/8.1

9 Anni 6 Mesi fa #1 da pad
Cari amici, in questo periodo, per motivi di lavoro ho lasciato da parte l'elettronica e mi sono impegnato nella programmazione di web application basate su Database Mysql.

Di questo meraviglioso Database, siamo arrivati alla versione 5.6 che è assolutamente molto matura per affrontare ogni esigenza e ogni ambiente di lavoro multi piattaforma.

Accade però che tra le versioni definite stabili di MySQL e i rinnovati e più sicuri Sistemi Operativi Microsoft, spesso si entra in conflitto con le politiche di sicurezza e si deve operare con modalità completamente diverse dall'usuario.

Infatti, tutte le mie vecchie procedure relative ai backup di MySQL che effettuo attraverso un dump completo del database, oggi, non funzionano più.

Da vari giorni mi sono messo a smanettare con le procedure sopra dette, ma nulla mi ha portato ad una soluzione immediata, ho dovuto faticare e non poco per trovare una soluzione adatta alle mie esigenze.

Poichè sul WEB la documentazione, è scarsa, ovvero riguarda quasi sempre server linux e quasi sempre, l'alterigia che contraddistingue gli informatici, porta a documentare poco e niente le loro considerazioni, mi sono deciso a fornire documentazione della mia esperienza che ha portato ai risultati attesi.
A questo punto però non vi chiedete perchè proprio in questo forum, si va a parlare di programmazione e procedure lontane dall'elettronica perchè neanche sotto tortura vi dirò le mie considerazioni in merito.

Ebbene, andiamo al sodo. MySQL server viene installato generalmente nella seguente struttura del file system del disco C:
program files\mysql\mysql server 5.6 e nella cartella bin vi sono i file eseguibili.
nella cartella bin vi è un file denominato mysqldump.exe che nelle sue varie formulazioni, provvede a creare un file sql con tutte le procedure per creare tutte le tabelle e i dati in esse contenuti, inoltre, consente anche di creare ex-novo il database qualora non esista.
Da quanto detto si capisce bene che in possesso di questo file sql e di un server MySQL, posso replicare esattamente un database dove voglio.
Infatti, questa è la soluzione offerta dal dump di un DB e questa è la procedura che più interessa per mettere in piedi una qualsivoglia operazione di disaster recovery.

Per iniziare, è necessario definire una cartella condivisa che consenta accesso senza particolari problemi di profilazione. Io ho scelto di creare la cartella "pubblica", proprio sotto la radice del disco C.

Effettuata questa operazione, dobbiamo scrivere un file eseguibile o batch che ci consenta di eseguire il comando mysqldump.exe e posizionarlo nella cartella pubblica appena creata e profilata.
Questo file che avrà estensione .bat (nel mio caso l'ho chiamato dumpd.bat), conterrà i seguenti comandi:

echo off
cls
cd\
cd program files\mysql\mysql server 5.6\bin
mysqldump.exe --defaults-file="c:\pubblica\my.cnf" -uroot "nomeDB" > c:\pubblica\md_db_dump.sql


una raccomandazione, rispettate gli spazi esattamente così come è scritto altrimenti non funziona.

Salvato il file, è necessario creare un altro piccolo file che contiene l'utenza e la password per accedere al database e che può essere scritto con qualsiasi estensione purchè si scriva correttamente nel file batch sopra descritto.
Io, nel mio caso l'ho chiamato my.cnf ed ho scritto, per semplificare, l'utenza e la password di root (l'amministratore di MySQL) ma è consigliabile creare una utenza che si preoccupa esclusivamente di fare i backup con grant specifiche.
my.cnf contiene quanto appresso descritto:

[client]
user= root
password=mypassword

[Mysqldump]
user= root
password=mypassword


ovviamente, al posto di mypassword andrà scritta la password reale del DB e, anche in questo caso, raccomando gli spazi.

questo file, per comodità, va messo nella famosa cartella pubblica.

Fatto questo, non rimane che mandare in esecuzione il file .bat e vedrete che nella cartella pubblica, verrà scritto un nuovo file denominato md_db_dump.sql e che conterrà esattamente e puntualmente gli script sql per creare le tabelle e le viste e tutti i dati del DB.

Risulta facile ed immediato pensare a questo punto che copiandolo e mettendolo in sicurezza magari sul cloud, avete provveduto ad effettuare un Disaster Recovery del vostro amato/dannato/sofferto Database.

Buon lavoro a tutti, con la speranza di essere stato utile e chiaro per tutti coloro che si cimentano, come me, nel mondo dei database e che, sempre come me, sul web hanno trovato confusione e pressappochismo.

Grazie per l'attenzione
Paolo.
Ringraziano per il messaggio: alfa75

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • pad
  • Junior Member
  • Junior Member
Di più
9 Anni 6 Mesi fa #2 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Dump di un DB con MySQL 5.6 e Windows 7/8/8.1
Grazie per aver condiviso la soluzione.
Dal mio lato, quando lavoro con MySQL mi trovo a dover fare cose semplici semplici...
...e per fortuna non ho ancora sbattuto molto la testa.

Saluti,

Mauro

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
9 Anni 6 Mesi fa #3 da alfa75
Risposta da alfa75 al topic Dump di un DB con MySQL 5.6 e Windows 7/8/8.1
Ciao Paolo
Ti ringrazio anch'io per la condivisione
Ottimo lavoro B)

Ciao
Andrea

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • alfa75
  • Avatar di alfa75
  • Platinum Member
  • Platinum Member
Di più
9 Anni 6 Mesi fa #4 da pad
Grazie a te per aver letto il post e per averlo trovato interessante. Io per risolvere ho tribolato tanto e spero di essere stato d'aiuto per chi come me lavora in questo campo.

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • pad
  • Junior Member
  • Junior Member
Di più
Moderatori: Mauro Laurenti

Registrati al sito

Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.

Registrati al sito LaurTec.

Login