Otevřete mysql příkazovém okně a zadejte tento příkaz:
mysql> FLUSH TABLES WITH READ LOCK;
Tímto uzamknete vše tabulky ve všech databáze v této instanci MySQL, dokud nevydáte příkaz UNLOCK TABLES (nebo ukončit klientské připojení, které má tyto zámky čtení).
Chcete-li to potvrdit, můžete otevřít další příkazové okno a pokusit se provést ALTER , DROP , RENAME nebo TRUNCATE . Tyto příkazy se zablokují a čekají na uvolnění zámku čtení. Čekání ukončíte stisknutím Ctrl-C.
Ale zatímco tabulky mají zámek čtení, stále můžete provést mysqldump zálohování.
FLUSH TABLES WITH READ LOCK příkaz může být stejný jako při použití --lock-all-tables možnost mysqldump . Není to úplně jasné, ale tento dokument
Zdá se, že to podporuje:
Oba FLUSH TABLES WITH READ LOCK a --lock-all-tables použijte frázi "globální zámek čtení", takže si myslím, že je pravděpodobné, že tyto dělají totéž. Proto byste měli být schopni použít tuto možnost k mysqldump a chránit proti souběžným ALTER, DROP, RENAME a TRUNCATE.
Re. váš komentář:Následující je od Guilhema Bichota v protokolu chyb MySQL, na který jste odkazovali:
Z toho vyplývá, že nemůžete získat souběžný přístup během zálohování a současně blokovat ALTER, DROP, RENAME a TRUNCATE.