Importuj pojedynczą bazę danych z Zrzutu --all-databases

Czy można zaimportować pojedynczą bazę danych z -- all-databases mysqldump? Chyba mogę zmodyfikować plik ręcznie, ale zastanawiam się, czy są jakieś opcje linii poleceń, aby to zrobić.

Przenoszę serwery i mam wiele baz danych, z których większość obecnie nie potrzebuję lub nie chcę w tej chwili, ale chciałbym mieć możliwość przywrócenia jednej z nich, jeśli zajdzie taka potrzeba.

Author: savageguy, 2010-02-26

2 answers

mysqldump wyjście jest tylko zbiorem SQL instrukcji.

Możesz podać żądaną bazę danych w wierszu poleceń i pominąć polecenia w stosunku do innych baz danych za pomocą:

mysql -D mydatabase -o mydatabase < dump.sql

Spowoduje to wykonanie poleceń tylko wtedy, gdy mydatabase jest w użyciu

 66
Author: Quassnoi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-04 17:53:31

Możesz użyć następującego polecenia:

mysql -u root -p --one-database destdbname < alldatabases.sql

Gdzie destdbname jest żądaną bazą danych, którą chcesz przywrócić.

Inną opcją, która jest IMHO znacznie bezpieczniejsza, jest wyodrębnienie DB z --all-databases zrzutu. Przykład:

sed -n '/^-- Current Database: `dbname`/,/^-- Current Database: `/p' alldatabases.sql > output.sql

Zastąp dbname żądaną nazwą bazy danych. alldatabases.sql to nazwa pliku SQL-dump. W ten sposób będziesz mieć oddzielony DB na pliku, a następnie możesz przywrócić za pomocą prostego polecenia mysql.

Powodzenia

(napisy do: Darren Mothersele-zobacz jego stronę )

 55
Author: Hetzbh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-06 14:24:08