Pelayan MySQL tiba-tiba berhenti berfungsi, perkhidmatan akan terputus-putus, saya tidak dapat membuat sandaran kerana perkhidmatan tidak berjalan, jadi yang terbaik yang boleh saya lakukan ialah menyalin keseluruhan folder DATA.
Selain itu, saya mempunyai sandaran yang lebih lama, jadi menggunakan itu bersama-sama dengan fail ibd memulihkan semua jadual kecuali yang terakhir, yang berkata:
ERROR 1808 (HY000): Schema mismatch (Clustered index validation failed. Because the .cfg file is missing, table definition of the IBD file could be different. Or the data file itself is already corrupted.)
Saya tidak tahu nak buat apa.
Saya rasa satu-satunya perkara yang boleh anda lakukan ialah bergantung pada versi jadual dalam sandaran. Anda tidak boleh memulihkan
.ibd
fail yang disalin.Mesej ralat menunjukkan bahawa salah satu daripada dua perkara telah berlaku:
Struktur jadual telah berubah sejak sandaran, jadi fail
.ibd
tidak lagi sepadan dengan metadata yang disimpan dalam kamus data. InnoDB berada dalam bot yang sama dengan anda apabila kandungan fail tablespace tidak sepadan dengan metadata: "Saya tidak tahu apa yang perlu dilakukan."Jelas sekali ini akan menimbulkan masalah jika anda berjaya memulihkan semua jadual lain. Kini terdapat lebih banyak data terkini dalam kebanyakan jadual, kecuali untuk jadual terakhir, yang sudah lapuk. Jika terdapat baris dalam jadual ini yang merujuk antara satu sama lain, mereka mungkin mempunyai rekod anak yatim (contohnya, rekod yang menunjukkan bahawa pengguna membeli produk, tetapi pengguna itu tidak wujud dalam jadual Pengguna).
Ini adalah malang dan sukar untuk diperbetulkan.
Secara umumnya, menyalin fail .ibd bukanlah cara yang boleh dipercayai untuk menyandarkan pangkalan data InnoDB. Anda perlu menggunakan alat sandaran yang sesuai, seperti mysqldump atau Percona XtraBackup.
Satu lagi penyelesaian untuk memulihkan data selepas sandaran terakhir ialah menggunakan fail log binari untuk pemulihan titik dalam masa. Tetapi untuk mencapai ini, anda memerlukan semua fail log binari sejak sandaran yang paling terkini, dan sandaran memerlukan maklumat tentang lokasi log binari pada masa sandaran diambil. Sila rujuk
https://dev.mysql.com/doc /refman/en/point-in-time-recovery.html