Eseguire il backup e il ripristino di un database MySQL o MariaDB tramite PHP

Per pacchetti Hosting Linux

In questo articolo ti mostriamo due script PHP con cui puoi eseguire il backup e, successivamente, il ripristino del tuo database MySQL o MariaDB.

Eseguire il backup del database

Il seguente script PHP crea un cosiddetto dump SQL. Si tratta di un file di testo contenente tutti i dati e le istruzioni necessarie per ripristinare il database in formato SQL.

<?php
//Inserisci qui le informazioni del database e il nome del file di backup
$mysqlDatabaseName ='Nome del database';
$mysqlUserName ='nome utente';
$mysqlPassword ='password';
$mysqlHostName ='dbxxx.hosting-data.io';
$mysqlExportPath ='Nome-file-desiderato.sql';

//Si prega di non modificare i seguenti punti
//Esportazione del database e dell'output dello stato
$command='mysqldump --opt -h' .$mysqlHostName .' -u' .$mysqlUserName .' -p' .$mysqlPassword .' ' .$mysqlDatabaseName .' > ' .$mysqlExportPath;
exec($command,$output,$worked);
switch($worked){
case 0:
echo 'Il database <b>' .$mysqlDatabaseName .'</b> è stato memorizzato con successo nel seguente perscorso '.getcwd().'/' .$mysqlExportPath .'</b>';
break;
case 1:
echo 'Si è verificato un errore durante la esportatione da <b>' .$mysqlDatabaseName .'</b> a '.getcwd().'/' .$mysqlExportPath .'</b>';
break;
case 2:
echo 'Si è verificato un errore di esportazione, controllare le seguenti informazioni: <br/><br/><table><tr><td>MySQL Database Name:</td><td><b>' .$mysqlDatabaseName .'</b></td></tr><tr><td>MySQL User Name:</td><td><b>' .$mysqlUserName .'</b></td></tr><tr><td>MySQL Password:</td><td><b>NOTSHOWN</b></td></tr><tr><td>MySQL Host Name:</td><td><b>' .$mysqlHostName .'</b></td></tr></table>';
break;
}
?>

Per eseguire il backup del tuo database utilizzando lo script PHP, procedi come descritto di seguito:

  • Crea un nuovo file di testo sul tuo PC con un editor e copia il codice PHP mostrato sopra.
  • Nello spazio apposito all'interno del codice, inserisci i dati di accesso al tuo database e salva lo script con l'estensione .php.

  • Carica il file nel tuo spazio web nella directory associata al tuo dominio.

  • Esegui lo script aprendo l'indirizzo Internet nel browser, ad esempio nel formato http://iltuodominio.it/skriptname.php.

Nota bene

Se usi l'opzione di configurazione safe_mode = on, è necessario disattivare il modo sicuro per l'esecuzione dello script. I database più vecchi possono essere nominati dbxx.puretec.it.

A questo punto viene creato e memorizzato un dump SQL nella directory dello script con il nome specificato nello script. È quindi possibile archiviare il file sul PC.

Ripristinare il database

Lo script seguente mostra come importare i backup esistenti come file .sql nel database:

<?php
//Inserire qui le informazioni del database e il nome del file di backup
$mysqlDatabaseName ='nome del database';
$mysqlUserName ='nome utente';
$mysqlPassword ='password';
$mysqlHostName ='dbxxx.hosting-data.io';
$mysqlImportFilename ='Nome-file-del-backups.sql';

//Si prega di non modificare i seguenti punti
//Importazione del database e dell'output dello stato
$command='mysql -h' .$mysqlHostName .' -u' .$mysqlUserName .' -p' .$mysqlPassword .' ' .$mysqlDatabaseName .' < ' .$mysqlImportFilename;
exec($command,$output,$worked);
switch($worked){
case 0:
echo 'I dati del file <b>' .$mysqlImportFilename .'</b> sono stati importati con successo nella banca dati <b>' .$mysqlDatabaseName .'</b>';
break;
case 1:
echo 'Si è verificato un errore durante la importazione. Controllare se il file si trova nella stessa cartella dello script. Controllare nuovamente anche i seguenti dati:<br/><br/><table><tr><td>MySQL Database Name:</td><td><b>' .$mysqlDatabaseName .'</b></td></tr><tr><td>MySQL User Name:</td><td><b>' .$mysqlUserName .'</b></td></tr><tr><td>MySQL Password:</td><td><b>NOTSHOWN</b></td></tr><tr><td>MySQL Host Name:</td><td><b>' .$mysqlHostName .'</b></td></tr><tr><td>MySQL Import Dateiname:</td><td><b>' .$mysqlImportFilename .'</b></td></tr></table>';
break;
}
?>
Nota bene

Se a causa delle dimensioni del database l'esecuzione dello script supera il limite di tempo concesso e il tuo pacchetto di web hosting include l'accesso SSH, hai la possibilità di ripristinare il database anche tramite SSH.