Membuat Cadangan Basis Data MySQL Menggunakan PHP
Mencadangkan basis data adalah langkah penting untuk memastikan data Anda tetap aman. Dalam panduan ini, akan ditunjukkan cara membuat skrip PHP untuk melakukan pencadangan otomatis basis data MySQL, termasuk struktur tabel dan datanya, ke dalam file SQL yang bisa digunakan untuk pemulihan di kemudian hari.
1. Mengatur Koneksi Basis Data
Pertama, saya perlu membuat koneksi ke basis data MySQL. Ganti your_username
, your_password
, dan your_database
sesuai kredensial Anda.
<?php
// Pengaturan koneksi basis data
$servername = "localhost";
$username = "your_username";
$password = "your_password";
$database = "your_database";
// Membuat koneksi
$conn = new mysqli($servername, $username, $password, $database);
// Memeriksa koneksi
if ($conn->connect_error) {
die("Koneksi gagal: " . $conn->connect_error);
}
?>
2. Mendefinisikan Nama File Cadangan
Selanjutnya, tentukan nama file SQL tempat cadangan akan disimpan.
// Nama file cadangan
$backup_file = 'backup.sql';
// Membuat atau membuka file cadangan
$handle = fopen($backup_file, 'w');
3. Mengambil Daftar Tabel dari Basis Data
Skrip perlu mengetahui semua tabel yang ada di basis data.
// Mengambil daftar tabel
$tables = array();
$result = $conn->query("SHOW TABLES");
while ($row = $result->fetch_row()) {
$tables[] = $row[0];
}
4. Menulis Struktur Tabel ke File Cadangan
Struktur setiap tabel disimpan ke file cadangan agar bisa dibuat kembali saat pemulihan.
foreach ($tables as $table) {
// Ambil struktur tabel
$create_table_query = "SHOW CREATE TABLE $table";
$result = $conn->query($create_table_query);
$row = $result->fetch_row();
$create_table_sql = $row[1] . ";";
// Tulis struktur tabel ke file
fwrite($handle, "\n\n-- Struktur tabel untuk tabel `$table`\n\n");
fwrite($handle, "$create_table_sql\n");
5. Menulis Data Tabel ke File Cadangan
Selain struktur, data tabel juga perlu dicadangkan.
// Ambil data tabel
$select_query = "SELECT * FROM $table";
$result = $conn->query($select_query);
// Tulis data ke file cadangan
while ($row = $result->fetch_assoc()) {
$row = array_map('addslashes', $row);
fwrite($handle, "INSERT INTO $table VALUES ('" . implode("', '", $row) . "');\n");
}
}
6. Menutup File dan Koneksi
Terakhir, tutup file cadangan dan koneksi MySQL.
// Tutup file
fclose($handle);
// Tutup koneksi MySQL
$conn->close();
echo "Cadangan berhasil diselesaikan!";
Kesimpulan
Skrip PHP ini memungkinkan Anda mencadangkan basis data MySQL secara sederhana, menyimpan struktur tabel dan datanya ke file SQL. File cadangan ini dapat digunakan untuk pemulihan basis data kapan pun dibutuhkan.
Pastikan skrip dijalankan di lingkungan yang aman dan file cadangan disimpan dengan benar agar tidak diakses pihak tidak berwenang. Untuk basis data besar atau kebutuhan pencadangan lebih kompleks, pertimbangkan menggunakan alat atau layanan pencadangan khusus.