Резервное копирование и восстановление MySQL из командной строки - PullRequest
6 голосов
/ 05 мая 2009

Я использую командную строку для резервного копирования и восстановления базы данных MYSQL. Позвольте мне использовать базу данных Data1 с представлениями и процедурами. Когда в Cmd line я использую mysqldump т.е.

..>bin> mysqldump -u root -proot Data1 > Datafile.mysql

Когда я использую вышеуказанный Cmd, он создает файл резервной копии в папке bin Mysql с Dtafile.mysql Имя.

но дело в том, что он создает резервные копии только таблиц, а не процедур.

И когда я восстанавливаю его в пустой базе данных "Data2"

..bin> mysql - u root -proot Data2 < Dataafile.mysql

Что он делает, он создает все таблицы и преобразует представления в таблицы, и никакие процедуры не были восстановлены.

Означает, что я не могу восстановить полную резервную копию базы данных со всеми таблицами, представлениями и процедурами.

Может кто-нибудь из вас, ребята, помочь этому .. Я был бы очень благодарен.

Ответы [ 2 ]

11 голосов
/ 05 мая 2009

Включите параметр --routines для mysqldump, и он выведет процедуры.

РЕДАКТИРОВАНИЕ № 1: Ваша команда mysqldump должна выглядеть так:

mysqldump -u root -proot --routines Data1 > Datafile.mysql

РЕДАКТИРОВАТЬ # 2:
Вам также необходимо добавить параметр --add-drop-table, если вы хотите сохранить ваши представления. Причина в том, что представления создаются в два этапа (сначала как фиктивные таблицы, затем как реальные представления). Также обратите внимание, что таблицы и представления имеют одно и то же пространство имен, поэтому не вводите в заблуждение вывод, полученный командой «Показать таблицы» в mysqlclient. Вместо этого используйте «Show Create View vw_test», если эта команда показывает запрос на создание представления, а затем bingo, чтобы убедиться, что представления восстановлены правильно, вставьте некоторые данные в соответствующие таблицы в другой базе данных и затем выполните запрос выбора Посмотрите, если данные связаны, чем вы попали в глаза, погладьте себя по спине :), иначе вы всегда можете вернуться в это замечательное сообщество в Stackoverflow.

Так что (для поддержки представлений) ваша команда mysqldump должна выглядеть следующим образом

mysqldump -u root -proot --routines --add-drop-table Data1 > Datafile.mysql

НТН

0 голосов
/ 24 апреля 2013

есть три лучших способа сделать резервную копию базы данных, используя командную строку, phpmyadmin или mysql administrator Простое резервное копирование и восстановление базы данных mysql, используйте резервную копию базы данных mysql

mysql администратор

PHPMyAdmin

...