Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana Memperbaiki Masalah Umum dengan Database MySQL?

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:

  1. Hentikan layanan MySQL dengan mengetik:
layanan mysqld berhenti

cd /var/lib/mysql

  1. Ubah ke direktori tempat database berada.
cd /var/lib/mysql/table_name

myisamchk

  1. Untuk memperbaiki tabel yang rusak, jalankan perintah berikut dengan mengganti TABLE dengan nama tabel yang ingin diperbaiki:
myisamchk –memulihkan
  1. Mulai ulang layanan MySQL Anda.
layanan mysqld mulai

Langkah 3:Paksa Pemulihan InnoDB

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.

  1. Buka file konfigurasi MySQL Anda (my.cnf), dan tambahkan berikut ini ke bagian [mysqld]:
[mysqld]

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.

  1. Jika Anda dapat memulai database Anda, jalankan perintah mysqldump berikut untuk mengekspor semua database ke file SQL (yaitu, file cadangan yang berisi semua pernyataan untuk memulihkan database):
mysqldump –all-databases –add-drop-database –add-drop-table> mydump.sql
  1. Mulai layanan MySQL, lalu coba hapus database yang berisi tabel yang terpengaruh menggunakan perintah DROP DATABASE. Jika Anda tidak dapat menghapus database, coba hapus secara manual dengan melakukan langkah-langkah di bawah ini setelah menghentikan server MySQL.
cd /var/lib/mysql

rm -rf

  1. Setelah menjalankan perintah di atas, beri komentar pada baris di bawah ini di [mysqld] untuk menonaktifkan pemulihan InnoDB:
#innodb_force_recovery=…
  1. Simpan semua perubahan yang Anda buat pada file my.cnf, lalu mulai server Anda.
layanan mysqld mulai
  1. Ty memulihkan database dan tabel dari dump MySQL (file cadangan) yang telah Anda buat di Langkah 2:
mysql -u user -p

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.

Kesimpulan

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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kesalahan saat memuat Modul MySQLdb 'Apakah Anda menginstal mysqlclient atau MySQL-python?'

  2. Bagaimana saya bisa mengatasi ketidakcocokan dengan sql_mode=only_full_group_by di laravel fasih?

  3. SQL DELETE dengan JOIN tabel lain untuk kondisi WHERE

  4. Cara Menginstal WordPress:Perangkat Lunak Server

  5. MySQL Menyukai banyak nilai