Buka mysql jendela perintah dan jalankan perintah ini:
mysql> FLUSH TABLES WITH READ LOCK;
Ini akan mengunci semua tabel di semua database pada instance MySQL ini sampai Anda mengeluarkan UNLOCK TABLES (atau putuskan koneksi klien yang menyimpan kunci baca ini).
Untuk mengonfirmasi ini, Anda dapat membuka jendela perintah lain dan mencoba melakukan ALTER , DROP , RENAME atau TRUNCATE . Perintah-perintah ini hang, menunggu kunci baca dilepaskan. Tekan Ctrl-C untuk menghentikan penantian.
Tetapi sementara tabel memiliki kunci baca, Anda masih dapat melakukan mysqldump cadangan.
FLUSH TABLES WITH READ LOCK perintah boleh sama dengan menggunakan --lock-all-tables pilihan mysqldump . Tidak sepenuhnya jelas, tetapi dokumen ini
sepertinya mendukungnya:
Keduanya FLUSH TABLES WITH READ LOCK dan --lock-all-tables gunakan frasa "kunci baca global", jadi saya pikir ini mungkin melakukan hal yang sama. Oleh karena itu, Anda harus dapat menggunakan opsi itu untuk mysqldump dan lindungi dari ALTER, DROP, RENAME, dan TRUNCATE secara bersamaan.
Ulang. komentar Anda:Berikut ini dari Guilhem Bichot di log bug MySQL yang Anda tautkan ke:
Dari sini, sepertinya Anda tidak bisa mendapatkan akses bersamaan selama pencadangan, dan secara bersamaan memblokir ALTER, DROP, RENAME, dan TRUNCATE.