Sekurkopio kaj Restarigo de MySQL-Datumbazo en PHP – Bootstrap
Saluton al ĉiuj, ĝis revido kun mi Portgastea, bela denaska sundana viro he.he.he , ĉi tiu lernilo estas Sekurkopio kaj Restarigo de MySQL-Datumbazo en PHP kun Bootstrap-vido.
Estas tre rekomendinde fari regulajn sekurkopiojn de nia datumbazo, fari rezervon permesos al ni krei rezervan dosieron en kazo de damaĝo al la ĉefa datumbazo. En la lernilo rezerva restariga datumbazo MySQL en PHP ni praktikas ĉi tion por fari sekurkopion kaj restarigi la internan tablon datumbazo MySQL kun bootstrap-vido por igi ĝin pli alloga rigardi.
Bone, ni simple kreu ligan skripton al la datumbazo kiel sube
<?php
// difini ligon al la datumbazo
$servilo = "localhost";
$salutnomo = "root";
$Pasvorto = "12345";
$Datumbazo = "tutorial";
// Konekti kaj elekti la datumbazon en la servilo
mysql_konekti($servilo,$salutnomo,$Pasvorto) aŭ la("Koneksi gagal");
mysql_select_db($Datumbazo) aŭ la("Database tidak bisa dibuka");
?>
ni kreas indeksan dosieron kiel sube :
<!DOCTYPE html>
<html lang="en">
<kapo>
<meta signaro="utf-8">
<titolo>Kolekto de Andeznet-Aplikaj Ekzemploj</titolo>
<meta nomo="viewport" enhavo="width=device-width, komenca skalo = 1.0">
<meta nomo="description" enhavo="">
<meta nomo="author" enhavo="">
<!-- Stiloj -->
<ligilo href="assets/css/bootstrap.css" rel="stylesheet" amaskomunikiloj="screen">
<ligilo href="assets/css/bootstrap-responsive.min.css" rel="stylesheet" amaskomunikiloj="screen">
<ligilo href="assets/css/bootstrap.min.css" rel="stylesheet" amaskomunikiloj="screen">
<stilo>
korpo {
remburaĵo-supro: 60px; /* 60px por igi la ujon iri ĝis la fundo de la supra stango */
}
</stilo>
<ligilo href="assets/css/bootstrap-responsive.css" rel="stylesheet">
<!-- HTML5-ŝimeto, por IE6-8 subteno de HTML5-elementoj -->
<!--[se IE 9]>
<skripto src="../assets/js/html5shiv.js"></skripto>
<![endif]-->
<!-- Fav kaj tuŝi ikonoj -->
<ligi rel="apple-touch-icon-precomposed" grandecoj="144x144" href="assets/ico/apple-touch-icon-144-precomposed.png">
<ligi rel="apple-touch-icon-precomposed" grandecoj="114x114" href="assets/ico/apple-touch-icon-114-precomposed.png">
<ligi rel="apple-touch-icon-precomposed" grandecoj="72x72" href="assets/ico/apple-touch-icon-72-precomposed.png">
<ligi rel="apple-touch-icon-precomposed" href="assets/ico/apple-touch-icon-57-precomposed.png">
<ligi rel="shortcut icon" href="assets/ico/logoandeznet.png">
</kapo>
<korpo>
<div klaso="navbar navbar-inverse navbar-fixed-top">
<div klaso="navbar-inner">
<div klaso="container">
<butona tipo="button" klaso="btn btn-navbar" datumoj-baskuli="collapse" datumoj-celo=".nav-collapse">
<interspaco klaso="icon-bar"></interspaco>
<interspaco klaso="icon-bar"></interspaco>
<interspaco klaso="icon-bar"></interspaco>
</butono>
<a klaso="brand" href="http://andeznet.com">AndezNet</a>
<div klaso="nav-collapse collapse">
<la klaso="nav">
<ĉe la klaso="active"><a href="media.php">Hejmo</a></ĉe la>
<ĉe la klaso="dropdown">
<a klaso="dropdown-toggle" datumoj-baskuli="dropdown" href="#">Ekzempla Apliko<b klaso="caret"></b></a>
<la klaso="dropdown-menu">
<ĉe la>
<tabindekso="-1" href="statistik.php">Registristo-Statistikoj</a>
</ĉe la>
<ĉe la>
<tabindekso="-1" href="backuprestore.php">Rezerva Restarigo</a>
</ĉe la>
<ĉe la>
<tabindekso="-1" href="carialamat.php">Adresa Serĉado</a>
</ĉe la>
<ĉe la>
<tabindekso="-1" href="playerbootsrap/index.html">MP3-ludilo</a>
</ĉe la>
</la>
</ĉe la>
<ĉe la><a href="#">Pri</a></ĉe la>
<ĉe la>
<a href="logout.php" identigilo="logout" onklako="return confirm('Ĉu vi certas?')">
<mi klaso="ace-icon fa fa-power-off"></mi>
Elsaluti
</a>
</ĉe la>
</la>
</div><!--/.ne estas-kolapsi -->
</div>
</div>
</div>
<div klaso="container">
</div>
</div>
<!-- Ĝavaskripto
==================================================== -->
<!-- Metita ĉe la fino de la dokumento tiel la paĝoj ŝarĝas pli rapide -->
<skripto src="assets/js/jquery.js"></skripto>
<skripto src="assets/js/bootstrap.min.js"></skripto>
</korpo>
</html>
Nun ni kreas PHP-skripton por sekurkopio & restaŭri
<?php
//Elŝuti dosieron-sekurkopion ==============================================
se(isset($_EKVENI['dosiernomo']))
{
$dosiero = $malantaŭa_dir.$_EKVENI['dosiernomo'];
se (dosiero_ekzistas($dosiero))
{
kaplinio('Enhavo-Priskribo: Dosiera Transdono ');
kaplinio('Enhava-Tipo: aplikaĵo / okteto-rivereto ');
kaplinio('Enhavo-Dispozicio: alligitaĵo; dosiernomo = '.baznomo($dosiero));
kaplinio('Enhavo-Transfer-Kodigo: duuma ');
kaplinio(- Eksvalidiĝas: 0');
kaplinio('Kaŝmemora Kontrolo: privata ');
kaplinio(- Pragmo: privata ');
kaplinio('Enhavo-Longo: ' . dosiergrandeco($dosiero));
ob_clean();
flulavi();
readfile($dosiero);
eliri;
}
alie
{
eoo "file {$_EKVENI['dosiernomo']} jam ne havebla.";
}
}
//Rezerva datumbazo ================================================== =
se(isset($_POST['rezerva']))
{
sekurkopio($dosiero);
eoo 'Datumbaza rezervo finiĝis <a style="cursor:montrilo" href="'.$dosiero.'" title="Download">Elŝuti dosieran datumbazon</a>';
eoo "<pre>";
presi_r($reveni);
eoo "</pre>";
}
alie
{
malfiksita($_POST['rezerva']);
}
//Restarigu datumbazon ==================================================
se(isset($_POST['restaŭri']))
{
restaŭri($_DOSIEROJ['datumdosiero']);
eoo "<pre>";
presi_r($linioj);
eoo "</pre>";
}
alie
{
malfiksita($_POST['restaŭri']);
}
?>
<?php
funkcio restaŭri($dosiero) {
tutmonda $ripozo_dir;
$dosiernomo = $dosiero['nomo'];
$ukrn_dosiero = $dosiero['grandeco'];
$tmp_dosiero = $dosiero['tmp_name'];
se ($dosiernomo == "")
{
eoo "Fatal Error";
}
alie
{
$adresdosiero = $ripozo_dir.$dosiernomo;
$ŝablono = tabelo();
se (movi_ŝutitan_dosieron($tmp_dosiero , $adresdosiero))
{
$ŝablono = ";
$linioj = dosiero($adresdosiero);
por ĉiu ($linioj kiel $linio)
{
se (substr($linio, 0, 2) == '-' || $linio == ")
daŭrigi;
$ŝablono .= $linio;
se (substr(eltondi($linio), -1, 1) == ';')
{
mysql_demando($ŝablono) aŭ presi('Query gagal \'<forta>' . $ŝablono . '\': ' . mysql_error() . '<br /><br />');
$ŝablono = ";
}
}
eoo "<centro>Sukcese Restarigu Datumbazon, Bonvolu kontroli.</centro>";
}alie{
eoo "Proses upload gagal, koderaro = " . $dosiero['eraro'];
}
}
}
funkcio sekurkopio($dosiernomo,$tabloj = ")
{
tutmonda $reveni, $tabloj, $malantaŭa_dir, $Datumbazo ;
se($tabloj == ")
{
$tabloj = tabelo();
$rezulto = @mysql_list_tables($Datumbazo);
dum($vico = @mysql_fetch_row($rezulto))
{
$tabloj[] = $vico[0];
}
}alie{
$tabloj = estas_aro($tabloj) ? $tabloj : eksplodi(',',$tabloj);
}
$reveni = ";
por ĉiu($tabloj kiel $tablo)
{
$rezulto = @mysql_demando(- ELEKTU * DE '.$tablo);
$num_kampoj = @mysql_num_fields($rezulto);
//menyisipkan query drop table untuk nanti hapus table yang lama
$reveni .= "DROP TABLE IF EXISTS ".$tablo.";";
$row2 = @mysql_fetch_row(mysql_demando('SHOW CREATE TABLE '.$tablo));
$reveni .= "\n\n".$row2[1].";\n\n";
por ($mi = 0; $mi < $num_kampoj; $mi++)
{
dum($vico = @mysql_fetch_row($rezulto))
{
$reveni.= 'INSERT INTO '.$tablo.' VALUES(';
por($j=0; $j<$num_kampoj; $j++)
{
$vico[$j] = @addslashes($vico[$j]);
$vico[$j] = @ereg_replace("\n","\\n",$vico[$j]);
se (isset($vico[$j])) { $reveni.= '"'.$vico[$j].'"' ; } alie { $reveni.= '""'; }
se ($j<($num_kampoj-1)) { $reveni.= ','; }
}
$reveni.= ");\n";
}
}
$reveni.="\n\n\n";
}
$dosiernomo;
$handle = fopen($malantaŭa_dir.$dosiernomo,'w+');
fwrite($handle, $reveni);
fclose($handle);
}
?>
Sisipkan script php di atas di file index.php setelah <div class=”container”> setelah itu kita jalankan di localhost http://localhost/tutorial , jika sudah benar maka akan tampil seperti gambar di bawah ini .
Untuk restore nya seperti ini
Ok selesai sudah tutorial kali ini,Untuk Download SourceCode bisa langsung download Aplikasi KSC Ver.1.0.0, di dalamnya ada form login, registri,sekurkopio,restaŭri & kumpulan soucecode dari Tutorial AndezNET.com saya bagikan GRATIS.
tanya pas restore itu ukurannya kebesaran gmn caranya agar bs suksess restor database gt..
Berapapun ukuran besar database nya Insya Allah bisa di restore, mungkin membutuhkan waktu agak lama untuk restore dengan ukuran yg besar
Terima kasih share backup db nya, tapi saya coba ada permasalahan saat download file sql tidak bekerja, tidak langsung download file .sql melainkan ke tab baru.
coba cari n cek lagi script ini gan
se(isset($_POST[‘backup’]))
{
sekurkopio($dosiero);
echo ‘Backup database telah selesai Elŝuti dosieran datumbazon‘;
eoo “
“;
}
alie
{
malfiksita($_POST[‘backup’]);
}
koc gak bisa di download ya ??
ĉu aperas eraro ? kio estas la eraro?