Поиск по сайту:

Как сделать резервную копию/экспортировать одну таблицу из базы данных MySQL


На днях я тестировал функцию на своем компьютере для разработки, когда понял, что мои локальные данные действительно устарели, и если я собирался чего-то достичь с моим тестированием, мне нужны были последние данные из производства. Проблема в том, что наша основная база данных MySQL просто огромна, и восстановление базы данных MySQL объемом 10 ГБ занимает несколько часов даже на самом быстром компьютере.

Конечно, вы можете указывать и смеяться над тем, почему мы не используем лучшую базу данных, например, PostgreSQL, но, поскольку наши сайты основаны на WordPress, мы застряли на MySQL и должны извлечь из этого максимум пользы.

К счастью, я вспомнил, что существуют аргументы командной строки, и посмотрел, есть ли способ экспортировать только одну таблицу с помощью mysqldump, и, конечно же, он был. Синтаксис выглядит следующим образом:

mysqldump [OPTIONS] database [tables]

Конечно, этот пример отстой, так что вот пример получше — если вы хотите сделать резервную копию только таблицы wp_users из вашей базы данных WordPress с именем wordpressdb, вы должны сделать что-то более близкое к этому, то есть экспортировать все это в файл с именем users.bak.

mysqldump -uUser -pPassword -hHostname wordpressdb wp_users > users.bak

Конечно, вы захотите заменить User, Password и Hostname значениями из вашего wp-config.

Если вы хотите экспортировать несколько таблиц — например, если вы поняли, что вам, вероятно, понадобится wp_usermeta, если вы собираетесь экспортировать wp_users — просто добавьте это в команду:

mysqldump -uUser -pPassword -hHostname wordpressdb wp_users wp_usermeta > users.bak

Чтобы импортировать эту резервную копию позже, перенесите ее туда, где вы хотите ее использовать, и запустите что-то вроде этого:

mysql -uUser -pPassword -hHostname databasename < users.bak

И это история о том, как одна таблица была экспортирована, и теперь моя локальная база данных обновлена.