Próbuję wykonać kopię zapasową całej bazy danych wraz z widokami. Mam zamiar użyć mysqldump
polecenia. Zastanawiałem się, czy to skopiuje wszystkie widoki, czy będę musiał użyć do tego osobnego polecenia.
Proszę zasugerować mi odpowiedź. Każda pomoc jest mile widziana.
--all-databases
, określ bazę danych, którą chcesz.Najlepszą odpowiedzią na to pytanie jest prawdopodobnie ta autorstwa olliiiver, którą nieco zmodyfikowałem. W szczególności eksportuje zapytanie o tablicę upuszczania oraz zapytanie o utworzenie lub zamianę widoku dla każdego widoku w systemie, bez potrzeby manipulowania żadnymi tabelami. Zapytanie o tablicę zrzutu jest często ważne, ponieważ mysqldump najwyraźniej lubi odtwarzać widoki jako tabele, chyba że umieścisz każdy widok we własnym parametrze --ignore-table, co byłoby denerwujące. Wykorzystuje INFORMACJE_SCHEMA.
Jeśli chcesz zamienić coś takiego w skrypt powłoki, polecam również użycie parametru --defaults-extra-file = CREDSFILENAME, abyś nie musiał określać użytkownika / hasła w skrypcie.
Plik poświadczeń wygląda następująco:
źródło