Per pacchetti Hosting Linux

In questo articolo ti mostriamo come eseguire il backup e il ripristino dei database MySQL e MariaDB tramite il tuo accesso shell. Per farlo si utilizzano programmi da riga di comando mysqldump e mysql, che sono già installati di default nei tuoi pacchetti Hosting Linux e sui server gestiti (Performance Hosting).

Nota bene

Le procedure qui descritte sono adatte anche a database di grandi dimensioni con volumi di dati superiori a 1 GB (gigabyte).

Requisiti
  • Disponi di un pacchetto di web hosting con accesso shell (o un server gestito).

  • Disponi dei dati di accesso al tuo database (nome host, nome database, nome utente, password).

  • Per il ripristino, i dati devono essere disponibili sotto forma di file di backup in formato SQL (dump SQL).

  • È consigliabile una conoscenza di base della shell di Linux.
     

Eseguire il backup del database con mysqldump

Lo strumento mysqldump crea un file di backup contenente comandi SQL che permettono di ricostruire la struttura del database e ripristinare i dati. Il backup dei dati così creato può quindi essere nuovamente importato in un database utilizzando il client MySQL per ripristinare i dati.

Per eseguire il backup del database con mysqldump:

  • Stabilisci una connessione SSH al tuo spazio web. Esegui quindi i seguenti passaggi nella finestra del terminale.

  • Per creare un backup completo del tuo database, esegui il comando mysqldump secondo il seguente schema:

mysqldump --no-tablespaces --host=HOSTNAME --user=BENUTZERNAME --password=PASSWORT DATENBANKNAME > DATEI

Sostituisci i segnaposto scritti in lettere maiuscole con i dati di accesso del database di cui desideri eseguire il backup. Inserisci anche il nome desiderato per il tuo file di backup.

Esempio:

mysqldump --no-tablespaces --host=db1234567890.hosting-data.io --user=dbu654321 --password=2gCjmnrmLkxnSefw dbs7654321 > dbs7654321_dump_29-04-2024.sql

Il tuo file di backup viene creato e salvato nella directory in cui hai eseguito il comando mysqldump. Il tempo necessario per questa operazione varia a seconda della quantità di dati. Una volta conclusa, puoi scaricare il file e conservarlo in un luogo sicuro.

Importante

Non chiudere la finestra del terminale fino al completamento del backup. In caso contrario, il processo verrà interrotto.

Ripristinare il database con il client MySQL

mysql --host=HOSTNAME --user=BENUTZERNAME --password=PASSWORT DATENBANK < DATEINAME

Sostituisci i segnaposto scritti in maiuscolo con i dati di accesso del database in cui desideri ripristinare i dati.

Esempio:

mysql --host=db1234567890.hosting-data.io --user=dbu654321 --password=2gCjmnrmLkxnSefw dbs7654321 < dbs7654321_dump_29-04-2024.sql
Il file di backup è in formato gzip (.gz)


Se il file è in formato gzip, combina il comando mysql con il comando gunzip secondo il seguente schema:

gunzip -c DATEINAME | mysql --host=HOSTNAME --user=BENUTZERNAME --password=PASSWORT DATENBANK

Esempio:

gunzip -c dbs7654321_dump_29-04-2024.sql.gz | mysql --host=db1234567890.hosting-data.io --user=dbu654321 --password=2gCjmnrmLkxnSefw dbs7654321

Risoluzione dei problemi

Di seguito sono riportate le soluzioni suggerite per errori comuni che possono verificarsi durante l'esecuzione delle istruzioni.

Uso di caratteri speciali

Se i nomi dei file, le password o i nomi utente contengono caratteri speciali, nel comando mysqldump o mysql devi racchiuderli tra apostrofi (')

Esempio: mysqldump [...] --password='%gCjmnrmLk!xnSefw'

Messaggi di errore: mysqldump
 
  • mysqldump: Got error: 1044: "Access denied for user [...] to database [...]

    Questo errore si verifica, ad esempio, se non è possibile assegnare il nome del database specificato.

    Soluzione suggerita: verifica che il nome del database sia corretto. Presta attenzione alle maiuscole e alle minuscole.
  • mysqldump: Got error : 1045 : "Access denied for user [...]

    Questo errore si verifica quando un utente tenta di accedere a MySQL con dati di accesso non validi (nome utente e/o password).

    Soluzione suggerita: verifica che il nome utente e la password siano corretti. Fai attenzione alle maiuscole e alle minuscole.
  • mysqldump: Got error: 2005: "Unknown MySQL server host [...]

    Questo errore si verifica quando MySQL non riesce a stabilire una connessione al server del database specificato.

    Soluzione suggerita: verifica che il nome host non contenga errori di battitura.

 

Messaggi di errore: client MySQL

 

  • ERROR 1044 (42000) at line X: Access denied for user [...]

    Questo errore si verifica quando un utente tenta di eseguire un'azione per la quale non è autorizzato. A seconda di come è stato creato il file di backup, questo potrebbe contenere anche l'istruzione di creare un database, ad esempio, cosa che non è possibile in questo caso, ma nemmeno necessaria. Cosa fare in questo caso è descritto nell'articolo "1044 - Access denied": risolvere un errore durante l'importazione di un database MySQL o MariaDB
  • ERROR 1045 (28000): Access denied for user [...]

    Questo errore si verifica quando un utente cerca di accedere a MySQL con dati di accesso non validi (nome utente e/o password).

    Soluzione suggerita: verifica che il nome utente e la password siano corretti. Presta attenzione alle maiuscole e alle minuscole.
  • ERROR 2005 (HY000): Unknown MySQL server host [...]

    Questo errore si verifica se MySQL non riesce a stabilire una connessione al server del database specificato.

    Soluzione suggerita: verifica che il nome host non contenga errori di battitura.

 

Ignorare gli errori di Mysql


Puoi indicare al client MySQL di ignorare gli errori utilizzando il parametro -force. Ciò significa che anche se si verificano errori, il processo di importazione non viene interrotto. Al contrario, il client tenta di continuare con i comandi o i record successivi.
 

Esempio:

mysql –force --host=db1234567890.hosting-data.io --user=dbu654321 --password=2gCjmnrmLkxnSefw dbs7654321 < dbs7654321_dump_29-04-2024.sql
Importante

Poiché gli errori vengono ignorati, l'uso di -force può causare problemi di integrità dei dati. Alcuni record possono essere errati o mancanti, il che può influire sulla qualità complessiva del database. Ti consigliamo di eseguire delle convalide dopo l'importazione per assicurarti che tutti i dati siano stati importati correttamente.