Ringkasan: Artikel ini mencantumkan beberapa kesalahan umum yang mungkin Anda temui ketika tabel MySQL rusak. Ini juga menguraikan kemungkinan alasan di balik korupsi tabel database MySQL. Artikel ini juga menjelaskan apa yang dapat Anda lakukan untuk memperbaiki tabel yang rusak dan bagaimana perangkat lunak perbaikan database MySQL dapat berguna untuk memulihkan data di dalam tabel dan semua objek database lainnya.
Sebagai pengguna database MySQL, Anda mungkin mengalami salah satu kesalahan berikut:
- “Tabel ditandai sebagai rusak dan harus diperbaiki”
- “Tabel rusak dan perbaikan terakhir gagal”
- “Tabel tbl_name tidak ada”
- “File kunci salah untuk tabel:‘…’. Coba perbaiki”, dll.
Ini adalah tanda peringatan bahwa tabel MySQL Anda rusak.
Apa Penyebab Korupsi di Tabel Database MySQL?
Berikut ini adalah kemungkinan alasan yang menyebabkan kerusakan tabel database MySQL:
- Masalah pada platform dasar yang digunakan oleh MySQL, termasuk subsistem disk, driver, pengontrol, dll.
- Penonaktifan sistem secara tiba-tiba atau server mogok
- Proses MySQL terhenti di tengah penulisan ke database
- Bug perangkat lunak atau kegagalan perangkat keras
Menghadapi salah satu kesalahan korupsi MySQL ini dapat membuat data di dalam tabel tidak dapat diakses. Mari kita bahas solusi untuk memperbaiki tabel yang rusak.
Bagaimana Memperbaiki Kesalahan Korupsi Database MySQL?
Jika Anda memiliki cadangan database yang diperbarui, pulihkan database dari cadangan untuk memulihkan data tabel yang tidak dapat diakses. Jika cadangan tidak tersedia, lakukan langkah-langkah dalam urutan di bawah ini untuk memperbaiki tabel MySQL yang rusak dan memulihkan data:
Catatan: Ambil cadangan database dan tabel MySQL Anda untuk mencegah kerusakan lebih lanjut selama proses perbaikan dan pemulihan.
Langkah 1:Periksa Tabel untuk Kesalahan
Pertama, Anda harus memeriksa tabel database untuk kesalahan korupsi. Anda dapat menggunakan CHECK TABLE perintah untuk mendiagnosis tabel InnoDB dan MyISAM yang rusak:
PERIKSA TABEL opsi tbl_name; |
Di sini, ganti 'tbl_name' dengan nama tabel database yang rusak. Dan ganti 'opsi' dengan salah satu opsi berikut:CEPAT, CEPAT, SEDANG, DIPERPANJANG, dan DIUBAH.
Opsi | Deskripsi |
CEPAT | Melakukan perbaikan tabel InnoDB dan MyISAM lebih cepat. Melewati pemindaian baris untuk mencari tautan yang salah |
CEPAT | Hanya periksa tabel MyISAM yang belum ditutup dengan benar. Tidak berlaku untuk tabel InnoDB. |
BERUBAH | Hanya periksa tabel MyISAM yang belum ditutup sejak pemeriksaan terakhir dilakukan. Tidak berlaku untuk tabel InnoDB. |
MENENGAH | Verifikasi apakah tautan yang dihapus valid dengan memindai baris. Hanya berlaku untuk tabel MyISAM. |
DIPERPANJANG | Melakukan pencarian kunci lengkap untuk semua kunci untuk setiap baris tabel MyISAM. Perlu waktu lama untuk dieksekusi. |
Untuk memeriksa lebih dari satu tabel untuk korupsi, gunakan perintah berikut:
PERIKSA TABEL tbl_name1, tbl_name2, tbl_name 3 opsi; |
Catatan: Perintah CHECK TABLE hanya dapat digunakan saat proses MySQL sedang berjalan. Namun, jika proses/server tidak berjalan, Anda dapat menggunakan perintah 'myisamchk' berikut untuk memeriksa tabel MyISAM apakah ada kerusakan:
myisamchk [opsi] tbl_name …
Perintah ini memeriksa satu tabel.
Jalankan perintah berikut untuk memeriksa semua tabel di database MySQL untuk korupsi:
myisamchk /path/to/datadir/*/*.MYI
Utilitas myisamchk tidak berfungsi untuk tabel InnoDB.
Langkah 2:Perbaiki Tabel yang Rusak
Catatan: Perintah myisamchk hanya berlaku untuk tabel MyISAM dan tidak berfungsi untuk tabel InnoDB. Untuk memperbaiki dan memulihkan tabel Innodb, lewati ke Langkah 3.
Utilitas myisamchk juga dapat membantu memperbaiki tabel MyISAM yang korup (rusak). Untuk menggunakan utilitas untuk memperbaiki meja yang rusak, lakukan hal berikut:
- Hentikan layanan MySQL dengan mengetik:
layanan mysqld berhenti cd /var/lib/mysql |
- Ubah ke direktori tempat database berada.
cd /var/lib/mysql/table_name
myisamchk
Untuk memperbaiki kerusakan pada tabel InnoDB, gunakan ‘innodb_force_recovery’ pilihan. Opsi ini memaksa mesin database InnoDB untuk memulai tanpa operasi latar belakang apa pun, yang memungkinkan Anda membuang tabel Anda.
innodb_force_recovery=1
layanan mysql dimulai ulang
Anda dapat memulai innodb_force_recovery dengan nilai 1 dan meningkatkan nilainya, jika perlu. Setelah Anda memulai pemulihan innodb, mulai ulang server MySQL Anda dan kemudian buang tabel Anda. Namun, dalam beberapa situasi, Anda mungkin perlu menyetel nilainya ke 4 hingga 6, yang dapat merusak data.
Hati-hati! Jika Anda dapat membuang tabel dengan nilai innodb_force_recovery=3 atau kurang, maka Anda dapat melakukan proses pemulihan dengan aman. Namun, menyetel innodb_force_recovery ke nilai yang lebih besar dari 4 melibatkan risiko kehilangan data.
rm -rf
Melakukan langkah-langkah ini akan memulihkan database MySQL dan tabelnya. Jika data masih hilang, Anda perlu menggunakan perangkat lunak perbaikan database MySQL profesional, seperti Stellar Repair for MySQL untuk memulihkan database Anda dan memulihkan datanya. Perangkat lunak ini dapat memperbaiki tabel InnoDB dan MyISAM dengan menjaga data tetap utuh. Ini mendukung perbaikan tabel MySQL pada Windows serta sistem Linux.
Tabel database MySQL dapat rusak karena sistem mati mendadak, server crash, kegagalan perangkat keras, bug dalam kode MySQL, dll. Kerusakan pada tabel MySQL menyebabkan kesalahan yang tercantum dalam artikel ini. Anda dapat mencoba memperbaiki tabel MyISAM yang rusak dengan menggunakan utilitas 'myisamchk' atau memaksa pemulihan InnoDB. Namun, mungkin diperlukan waktu yang cukup lama untuk memperbaiki tabel MyISAM dan melakukan pemulihan InnoDB secara manual. Selain itu, proses pemulihan manual dapat mengakibatkan hilangnya data. Alternatif yang lebih baik adalah menggunakan Stellar Repair untuk perangkat lunak MySQL. Perangkat lunak ini memungkinkan perbaikan tabel database MyISAM dan InnoDB tanpa membuat perubahan apa pun pada data asli.
Kesalahan saat memuat Modul MySQLdb 'Apakah Anda menginstal mysqlclient atau MySQL-python?' Bagaimana saya bisa mengatasi ketidakcocokan dengan sql_mode=only_full_group_by di laravel fasih? SQL DELETE dengan JOIN tabel lain untuk kondisi WHERE Cara Menginstal WordPress:Perangkat Lunak Server MySQL Menyukai banyak nilai |