Pubblico questo piccolo script con la speranza che, con l'aiuto di qualcuno, si possa migliorare e rendere flessibile a tutti sistemi.
Lo script è nato per la necessità di importare database di grandi dimensioni in modo veloce, cosa che con phpMyAdmin non è possibile.
BACKUP DATABASE USANDO PHP E MYSQLDUMP
mysldump è il programma di mysql per il backup di uno o più database. Usato da shell è il sistema migliore e più veloce per backuppare db.
Questo piccolo script php sfrutta proprio questo programma.
Io l'ho provato sia su linux che su win e funziona, con un semplice click e poche righe di codice si può scaricare velocemente in locale il dump del db.
C'è da dire che i server che ho utilizzato sono miei e quindi l'utilizzo delle funzioni per l'esecuzione di programmi esterni non è disabilitata.
Se siete in hosting dovete verificare la posiibilità di utilizzare funzioni per programmi esterni.
Ecco lo script per il dump:
IMPORT DATABASE USANDO PHP E MYSQLcodice:<? $db_name="NOME_DATABASE"; // nome database $user="utente_db"; // nome utente mysql $psw="password_db"; // password utente mysql $filename=$db_name."-".date("Y-m-d").".sql"; // nome del file del dump con la data odierna $percorso_file="/var/tmp/".$filename; // percorso file temporaneo del dump per linux (io uso /var/tmp). Commentare su win // $percorso_mysql="C:/Programmi/mysql/MySQL Server 4.1/bin"; // percorso mysql: solo per windows (cambiare se necessario). Commentare su linux // DUMP // system("\"$percorso_mysql\mysqldump\" --user=$user --password=$psw $db_name > $percorso_file"); // per windows. commentare se su linux system("mysqldump --user=$user --password=$psw $db_name > $percorso_file"); // per linux. commentare se su win // SE IL BROWSER E' INTERNET EXPLORER if(ereg("MSIE ([0-9].[0-9]{1,2})", $_SERVER['HTTP_USER_AGENT'])) { header("Content-Type: application/octetstream"); header("Content-Disposition: inline; filename=$filename"); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Pragma: public"); } else { header("Content-Type: application/octet-stream"); header("Content-Disposition: attachment; filename=$filename"); header("Expires: 0"); header("Pragma: no-cache"); } require($percorso_file); unlink($percorso_file); ?>
myslq è un altro programma di mysql per eseguire alcune operazioni da shell, come ad esempio l'import di db. Vale lo stesso discorso fatto precedentemente per l'hosting.
Ecco lo script per l'import.
codice:<?php // connessione a mysql $host="localhost"; $utente="user"; $passwut="password"; // connessione al db $link=mysql_connect($host,$utente,$passwut); if(!$link) die("Impossibile connettersi al database MYSQL. Errore: ".mysql_error()); $file_db="/var/tmp/dumpdb.sql"; // file proveniente dal dump (ometto la parte di upload per semplificare lo script) $db_name="NOME_DB"; if(file_exists($file_db)){ // cancellazione vecchio db $query1="DROP DATABASE $db_name"; mysql_query($query1,$link) or die("Impossibile eseguire la query $query1 Errore:".mysql_error()); // creazione nuovo db $query2="CREATE DATABASE $db_name"; mysql_query($query2,$link) or die("Impossibile eseguire la query $query2 Errore:".mysql_error()); $system_query="mysql --user=".$utente." --password=".$passwut." ".$db_name." < ".$file_db; // $percorso_mysql="C:/Programmi/mysql/MySQL Server 4.1/bin"; // percorso mysql: solo per windows (cambiare se necessario). Commentare su linux // DUMP // system("\"$percorso_mysql\$system_query"); // per windows. commentare se su linux $sr=system( $system_query ); // per linux. commentare se su win print " Database aggiornato! $sr</p>"; print " ".$system_query."</p>"; } else print "file non presente"; ?>

Rispondi quotando
