Per esportare il database utilizzeremo lo strumento mysqldump.
Se non presente nel sistema su Debian è possibile installarlo con il pacchetto mysql-client:
apt install mysql-clientEsportare un database
La sintassi del comando è abbastanza semplice:
mysqldump -h HOST -P PORTA -u UTENTE -p DATABASE > backup_db.sqlDi seguito illustrate le opzioni:
- -h: Indirizzo del server MySQL, se non specificato verrà effettuato localhost il socket /var/run/mysqld.sock.
- -P: Porta del server MySQL, se non specificata sarà utilizzata la porta 3306 (default).
- -u: Nome utente.
- -p: Indica che la connessione dell’utente richiede autenticazione con password.
L’unico argomento obbligatorio è il nome del database.
Come possiamo vedere non è stata specificata la password dell’utente direttamente nel comando per motivi di sicurezza. Verrà infatti richiesta dalla console una volta eseguito il comando.
Specificando “> backup_db.sql” andremo a reindirizzare l’output del comando (il nostro dump) sul file backup_db.sql anziché stamparlo sulla console.
Vogliamo ad esempio esportare il database negozio con l’utente root presente sul server mysql.azienda.local sulla porta di default e salvarlo sul file db_negozio.sql. Eseguiremo il seguente comando:
mysqldump -h mysql.azienda.local -u root -p negozio > db_negozio.sqlEsportare tutti i database
Se volessimo esportare tutti i database a cui ha accesso il nostro utente, dovremmo aggiungere l’opzione –all-databases senza alcun argomento:
mysqldump -h mysql.azienda.local -u root -p > miei_database.sqlIl nostro dump includerà anche eventuali database di sistema al quale l’utente utilizzato avrà accesso.
Importare un database
Dal dump generato possiamo importarlo con il comando mysql la cui sintassi è identica:
mysql -h HOST -P PORTA -u UTENTE -p DATABASE < backup_db.sqlL’unica differenza reale visibile nel comando è il simbolo < (minore) anziché > (maggiore). In questo caso viene letto il contenuto di backup_db.sql ed utilizzato come input (query da eseguire) al comando mysql.
Rispondi