Hanya tingkat file yang menyalin tabel MyISAM antara versi server yang sama:
- CPU 'endian' ( SPARC !=x86 )
- Versi MySQL dapat ditingkatkan tanpa konversi (5.0.48 salin ke 5.0 .52 buruk karena perubahan struktur indeks, tetapi salinan 5.0.52 ke 5.1.45 valid).
Waspadalah terhadap kondisi balapan... Anda mungkin mengakses file menggunakan FTP atau alat lain, saat database sedang membaca tabel. Ada tabel 'penghitung' yang diperbarui dalam .MYI bahkan untuk pembacaan tabel yang paling tidak berbahaya.
Saya menemukan yang berikut ini akan memastikan integritas tabel MyISAM untuk manipulasi tingkat file apa pun:
LOCK TABLE x WRITE;
FLUSH TABLE x; -- closes all file handles into table by mysql.
< perform file-level manipulations >
FLUSH TABLE x; -- A 'stat' of the table occurs and info-schema is updated appropriately.
UNLOCK TABLES;
Jika Anda TIDAK mengunci-menulis tabel Anda, mysql dapat mengaksesnya (membaca atau menulis) saat Anda melakukan penyalinan/manipulasi tingkat file.
Ini juga merupakan mekanisme yang sama yang digunakan untuk mengizinkan 'myisampack', 'myisamchk' untuk tabel pada database HOT yang bahkan memiliki penguncian eksternal yang dinonaktifkan, tanpa khawatir akan korupsi.
-- J Jorgenson --