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

Per pacchetti Hosting Linux con database MySQL

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

Eseguire il backup del database MySQL

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=array(),$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 MySQL e salva lo script dell'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 es. 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.

Ripristino del database MySQL

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=array(),$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 Webhosting include l'accesso SSH, hai la possibilità di ripristinare il database anche tramite SSH.