---
title: 'Backup di un database MySql'
url: 'https://www.linuxzine.it/tutorial/mysqlbackup'
markdown: 'https://www.linuxzine.it/tutorial/mysqlbackup.md'
lang: it
date: '2026-07-08'
description: "Backup di un database MySql Uno dei metodi più diffusi per effettuare un backup di un database MySql è sicuramente tramite l'utility mysqldump, utility fornita con l'installazione del server MySql e realizzata da Igor Romanenko. Dopo aver parlato delle query più comuni vediamo come eseguire il bac…"
taxonomy:
  category:
    - tutorial
  tag:
    - linux
    - mysql
    - mariadb
  author:
    - 'Fabrizio Paolini'
---

# Backup di un database MySql

![mysql-0](https://www.linuxzine.it/user/pages/03.Tutorial/06.mysqlbackup/mysql-0.png "mysql-0")

Uno dei metodi più diffusi per effettuare un backup di un database MySql è sicuramente tramite l'utility mysqldump, utility fornita con l'installazione del server MySql e realizzata da Igor Romanenko.

Dopo aver parlato delle [query più comuni](https://www.linuxzine.it/tutorial/mysql) vediamo come eseguire il backup di un database MySql ed il suo successivo ripristino (restore).

Per la trattazione completa di tutti i comandi, vi rimando alla documentazione ufficiale <https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html> in questo articolo esamineremo solamente i comandi principali.

## Backup di un database MySql

Per effettuare una copia del nostro database è necessario sul nostro server aprire la shell (oppure il prompt dei comandi in caso di server Windows) ed eseguire:

`mysqldump -u utente -p database_da_copiare > nomedelbackup.sql`

Al posto di utente dovremo inserire il nome utente con cui abbiamo accesso al database, al posto di database\_da\_copiare il nome del database di cui vogliamo fare la copia, e infine al posto di nomebackup.sql il nome del file dove verrà creata la copia.

In questo file testuale che verrà creato, troveremo tutti i comandi SQL per la ricostruzione dei dati contenuti nel database.

Se vogliamo anche ricreare la struttura del database dobbiamo utilizzare il parametro `--databases`.

`mysqldump -u utente -p --databases database_da_copiare > nomedelbackup.sql`

In caso di database di tipo InnoDb consiglio l'aggiunta del parametro --single-transaction in modo da avere una copia consistente dei dati. Se il database invece è di tipo MyIsam bisogna essere sicuri che i dati non vengano modificati durante la procedura di backup e in questo caso il parametro `--lock-all-tables` viene in nostro aiuto.

Dopo aver confermato questo comando, vi verrà chiesto di inserire la password di accesso al database, è possibile specificarla senza doverla inserire in un secondo momento, basterà inserirla subito dopo il parametro -p, questo metodo è utile se vogliamo ad esempio schedulare una procedura di backup, anche se ovviamente non è una soluzione accettabile in fatto di sicurezza perchè in questo modo esponiamo la password senza nessun criterio di sicurezza. Per questo aspetto vi consiglio di dare una lettura alla documentazione ufficiale <https://dev.mysql.com/doc/refman/5.6/en/password-security-user.html> dove viene spiegato come proteggere la password di accesso.

`mysqldump -u utente -ppassword database_da_copiare > nomedelbackup.sql`

### Backup di più database MySql

Possiamo eseguire il backup di più database in una sola volta tramite il parametro `--all-databases` oppure tramite `--databases`.

`mysqldump -u utente -p --all-databases > nomedelbackup.sql`

oppure

`mysqldump -u utente -p --databases database1 database2 database3 > nomedelbackup.sql`

### Backup della sola struttura di un database MySql

Possiamo eseguire il backup della sola struttura del database, quindi senza i dati contenuti al suo interno tramite il parametro `--no-data`

`mysqldump -u utente -p database_da_copiare --no-data > nomedelbackup.sql`

### Backup di una singola tabella di un database MySql

Possiamo eseguire il backup di una singola tabella del database

`mysqldump -u utente -p database_da_copiare nome_tabella_da_copiare > nomedelbackup.sql`

### Altri parametri utili:

- `--no-create-db` nel file di backup vengono omessi i comandi di creazione del database.
- `--add-drop-database` nel file di backup viene aggiunto il comando di elimiazione del database prima di ricrearlo.
- `--add-drop-table` nel file di backup viene aggiunto il comando di cancellazione delle tabelle, prima di ricrearle.

## Ripristino (restore) di un backup MySql

Se il backup contiene le informazioni per creare il database o tutti i database digitare

`mysql -u utente -p < nomedelbackup.sql`

Se invece abbiamo un backup di tutti i database, ma ne vogliamo ripristinare solamente uno, digitiamo

`mysql -u utente -p --one-database nome_del_db < nomedelbackup.sql`

In caso il database sia già presente, ed abbiamo effettuato una copia dei soli dati, digitare

`mysql -u utente -p nome_del_db < nomebackup.sql`

#### Articolo di Alessio

---

## Navigation

- Parent: [Tutorial](https://www.linuxzine.it/tutorial.md)
- Previous: [Mysql/MariaDb Query più comuni](https://www.linuxzine.it/tutorial/mysql.md)
- Next: [I tre comandi più distruttivi di sempre](https://www.linuxzine.it/tutorial/distruttivi.md)
