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.

Importante

Per i database di dimensioni superiori a 1 gigabyte, il backup e il ripristino devono essere eseguiti tramite accesso SSH. In caso contrario, l'operazione fallirà in quanto l'esecuzione dello script viene interrotta per un timeout.

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;
}
?>