MySQL поставляется с командами и утилитами «дампа», которые преобразуют базу данных в текстовую форму и сохраняют этот текст где-нибудь на диске. Для большой базы данных преобразование в текст может быть медленной операцией и генерировать большие файлы SQL, содержащие текст.
MySQL поддерживает три или четыре внутренних компактных файла в папке Windows, названной по имени базы данных и расположенной в ее данные папка. Копирование этих файлов происходит намного быстрее, чем копирование текстовых файлов SQL.
Но эти файлы не обновляются во время работы сервера MySQL, поэтому копирование из этих файлов может дать старые данные, а копирование в эти файлы может не отображать новые данные в приложениях MySQL.
Есть ли команда BAT / CMD, которую я могу использовать, чтобы сделать файлы данных согласованными (правильными), чтобы их можно было скопировать из или в MySQL?
Я предлагаю использовать следующую команду Windows:
set bin=C:\Program Files\MySQL\MySQL Server 5.6\bin
"%bin%/mysql" -e "FLUSH TABLES WITH READ LOCK; UNLOCK TABLES;" --user=UserName --password=Password DatabaseName
Это быстро переносит все внутренние данные MySQL для базы данных в ее файлы в папку базы данных в MySQL. данные папка, из которой их можно скопировать в другую папку (для резервного копирования или репликации). Вам нужно будет настроить эту команду для вашей конкретной версии MySQL, а также для вашей базы данных и администратора.
По моему опыту, эта команда BAT / CMD работает быстро и хорошо. Я часто использую его для резервного копирования и обновления приложений MySQL между двумя компьютерами.
Единственное другое предложение, которое я могу сделать, - это использовать MySQL Workbench (который поставляется с MySQL) для остановки сервера MySQL. Когда он остановлен, он сбрасывается на диск. Не забудьте запустить сервер MySQL, когда закончите использовать файлы напрямую (в это время MySQL считывает файлы базы данных с диска).
Примечание: если вы просто скопируете файлы данных для базы данных в папку данных другого экземпляра MySQL, который уже открыт, вы не увидите данные в приложениях MySQL! Вы могли подумать, что MySQL будет проверять дату / время изменения файлов на диске для обнаружения обновлений, но это не так. И он не держит свои файлы заблокированными, показывая Windows, что они используются, а это действительно так.