Skip to content

Membuat Script Repair Database

November 13, 2011

Seperti yang saya tuliskan di http://bimosaurus.com/2011/11/13/membuat-script-repair-database/

Salah satu permasalahan dalam sebuah webserver dengan database MySQL adalah error database/table yang rusak akibat mesin PC mati mendadak. Biasanya dengan demikian, input data akan gagal, penampilan database akan diketahui dari sisi web sebagai pesan error sebagai berikut: Table Error ERROR xxxx: Can’t open file: ‘xxx.MYD’.

Bagaimana cara memperbaiki? Cara paling singkat adalah melihat lebih dulu folder data MySQL yang biasanya jika pada Xampp windows akan tersimpan di …xampp\mysql\data\namadatabase atau jika pada linux terdapat di /var/lib/mysql/namadatabase. Check lebih dulu permission file nama file yang dimaksud apakah user mysql memiliki akses untuk membaca file tersebut.

Namun cara lain yang tidak kalah penting adalah melakukan repair database dari sisi MySQL itu sendiri. Hal ini bisa dilakukan dengan perintah

REPAIR TABLE

setelah lebih dulu melakukan CHECK TABLE satu persatu

mysql> use sistem;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+---------------------+
| Tables_in_sistem |
+---------------------+
| input               |
| kota                |
| menu                |
| userlog             |
| users               |
| welcome             |
+---------------------+
10 rows in set (0.00 sec)

mysql> CHECK TABLE welcome;
+------------------+-------+----------+----------+
| Table            | Op    | Msg_type | Msg_text |
+------------------+-------+----------+----------+
| sistem.welcome   | check | status   | error    |
+------------------+-------+----------+----------+
1 row in set (0.02 sec)

mysql> REPAIR TABLE welcome;
+----------------+--------+----------+----------+
| Table          | Op     | Msg_type | Msg_text |
+----------------+--------+----------+----------+
| sistem.welcome | repair | status   | OK       |
+----------------+--------+----------+----------+
1 row in set (0.05 sec)

mysql>

Untuk selanjutnya kita bisa membuat sebuah script PHP yang berfungsi untuk memberikan CHECK table dan REPAIR table untuk sistem kita sendiri. Kira-kira script tersebut akan seperti ini:

<table><tr valign=top><td>
Check Database:<br />
 
 
<table>
<tr><th>Table</th><th>Status</th></tr>
<?php
$sql_3 = "SHOW TABLES";
 
$q_3 = mysql_query($sql_3);
 
while($r_3=mysql_fetch_array( $q_3 )){
 
   $table_name = $r_3[0];
 
   $sql_4 = "CHECK TABLE `$table_name`";
 
   $q_4 = mysql_query($sql_4);
 
   while( $r_4 = mysql_fetch_array( $q_4 ) ){
 
   ?>
   <tr><td><?php echo $table_name; ?></td><td><?php echo $r_4[Msg_text];?></td></tr>
   <?php
 
   }
 
}
?>
</table>
 
<form action="" method="post"><input type="submit" name="repair" value="Repair"></form>
</td>
 
<td><div style="margin-left:100px; margin-top:20px;">
<?php
 
 
 
if( isset( $_POST[repair] ) ){
sleep(5);
?>
<table>
<tr><td>Nama Table</td><td>Status Repair</td></tr>
<?php
 
 
 
$sql_1 = "SHOW TABLES";
 
$q_1 = mysql_query($sql_1);
 
while($r_1=mysql_fetch_array( $q_1 )){
 
   $table_name = $r_1[0];
 
   $sql_2 = "REPAIR TABLE `$table_name`";
 
   $q_2 = mysql_query($sql_2);
 
   while( $r_2 = mysql_fetch_array( $q_2 ) ){
 
   ?>
   <tr><td><?php echo "Table ".  $table_name;?></td>
   <td><?php echo $r_2[Msg_text];?></td></tr>
   <?php
 
   }
 
}
 
 
 
 
 
 
 
?>
</tr>
</table>
<?php
}
?>
</div>
</td>
</tr>
</table>

Contoh tampilannya akan seperti berikut :

dan

Sekian… Semoga berguna

From → Tak Berkategori

2 Komentar
  1. artikel yg menarik, good joob…di tunggu artikel2 selanjut nya gan

    distributor Sparepart Laptop Notebook http://virgokomputer.com

  2. Yudo permalink

    Mau tanya nih boss, script PHP,
    Saya punya 1 table data isinya :

    Id_Kota Kota_Juan T_Express M_KgE Ket_Express T_Regular M_KgR Ket_Regular
    P00001 Banda Aceh 2500 10 Kg 3 Hari 1500 20 Kg 5 hari

    Pertanyaannya Boss, bagaimana script PHP untuk menghitung tarif kirim misal

    Pilih Jenis Kirim : Express
    Kota tujuan : Banda Aceh
    Berat Kirim : 2 Kg X 2500 =5000
    Muncul Keterangan : Minimum Kirim 10 Kg, Lama Kirim 3 hari

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: