2012-02-29 19 views
3

我想mysqldump轉儲視圖。我從PHP運行以下命令的mysqldump:未被mysqldump傾倒的視圖

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

,它似乎並沒有被傾銷的觀點(即我創建CREATE VIEW)。我怎樣才能得到它轉儲視圖以及表?

回答

2

根據this,您可能對視圖有問題,因爲您沒有數據庫的顯式SHOW VIEW權限。

「問題的解決方法是管理員手動授予SHOW VIEW特權給授予CREATE VIEW的用戶,因爲MySQL在創建視圖時不會隱式授予它。」

在所有其他情況下,視圖應該在生成的轉儲文件中......雖然有點奇怪......它首先爲視圖創建臨時表結構,然後創建視圖本身。這是因爲視圖可以在視圖中創建...並且對於mysqldump,無法知道發生的順序,所以它會創建臨時表,以避免在執行dumpfile以恢復數據庫時出現錯誤。

+0

我會嘗試添加SHOW VIEW權限,看看它是否工作。 – Fragsworth 2012-02-29 04:31:12

+1

然後呢? – dparkar 2013-01-24 21:53:22

0

這對我的作品

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