Просмотры не сбрасываются mysqldump - PullRequest
3 голосов
/ 29 февраля 2012

Я хочу, чтобы mysqldump сбрасывал представления.Я запускаю следующую команду mysqldump из PHP:

mysqldump -h127.0.0.1 -uroot -proot --database main -R --extended-insert=FALSE --complete-insert=TRUE

, и кажется, что она не выводит представления (которые я создал с помощью CREATE VIEW ).Как я могу получить его для дампа представлений, а также таблиц?

Ответы [ 2 ]

2 голосов
/ 29 февраля 2012

Согласно this могут возникнуть проблемы с представлениями, поскольку у вас нет явной привилегии SHOW VIEW для базы данных.

"Временное решение проблемы заключается в том, что администратор может вручную предоставить привилегию SHOW VIEW пользователям, которым предоставлен CREATE VIEW, поскольку MySQL не предоставляет ее неявно при создании представлений."

Во всех других случаях представления должны быть в результирующем файле дампа ... хотя это немного странно ... сначала создается временная структура таблицы для представления, а затем само представление. Это потому, что представление может быть создано в представлении ... и для mysqldump нет способа узнать, в каком порядке это произошло, поэтому он создает временные таблицы, чтобы избежать ошибок при выполнении файла дампа для восстановления базы данных.

0 голосов
/ 03 марта 2013

Это работает для меня

mysqldump --skip-comments --skip-opt --complete-insert --add-drop-table --database dbname -p
...