venerdì 21 agosto 2020

Esportare ed importare un database Mysql grande

L'altro giorno ho avuto la necessità di migrare un database mysql da un server ad un altro.
Normalmente, se i dati non sono troppi, è possibile compiere questa operazione esportando ed importando dei dump da phpmyadmin, se però il database è grosso diversi giga e contiene file blob per gli allegati, allora questa procedura non è utilizzabile.
Per fortuna però, è possibile esportare una copia esatta del database da riga di comando, salvando già direttamente il file sul nuovo server.
Vediamo subito come fare.


Come esportare un database Mysql grande da riga di comando


Per poter clonare un database mysql, facendo un dump puntuale dei dati, basta seguire i seguenti passaggi:
  1. Aprire il prompt dei comandi di dos (se si è su windows)
  2. Posizionarsi nel percorso in cui è presente l'eseguibile di mysql con il comando:
    cd C:\wamp64\bin\mysql\mysql8.0.16\bin
    Dove ovviamente va indicato il path del proprio mysql
  3. Digitare il seguente comando e premere invio:
    mysqldump -u nome-utente -p nome-db > C:\percorso\file.sql 
Verrà chiesto di inserire la password dell'utente sopra indicato, e dopo aver premuto invio occorrerà aspettare pazientemente che l'operazione vada a termine, anche se a video apparentemente non succede niente.
Quando la copia del database mysql sarà terminata, il cmd restituirà semplicemente la possibilità di digitare altri comandi, senza un vero e proprio messaggio di conferma copia avvenuta, se però andrete a vedere nel percorso indicato, troverete il file con estensione .sql contenente la copia del database mysql.


Come importare un database Mysql grande da riga di comando


Per importare un database mysql grosso, dopo averlo esportato con la comoda funzione mysqldump sarà necessario importarlo nel nuovo server con il seguente comando:

mysqldump -u nome-utente -p test > C:\percorso\file.sql

Come nel caso dell'import, il prompt dei comandi risulterà bloccato fino a che l'operazione non sarà terminata (e a seconda del peso potrebbero volerci anche molti minuti), ma una volta finito, il database mysql sul nuovo server sarà identico a quello del server di provenienza e potrete sfogliarlo e fare le verifiche del caso con phpmyadmin.

Come esportare ed importare un database Mysql

Questa era la procedura corretta per duplicare un database mysql pesante.
Non provate invece a copiare brutalmente i file contenuti nella cartella data di mysql, perchè la cosa potrebbe non funzionare correttamente anche se prima stoppate mysql.

Da ora in poi l'export e l'import di database mysql grandi non sarà più un problema, basta solo avere una buona banda ed un po' di pazienza.

Piaciuto l'articolo? Lascia un commento!

EmoticonEmoticon