【问题标题】:Views not being dumped by mysqldumpmysqldump 未转储视图
【发布时间】:2012-02-29 00:31:33
【问题描述】:

我希望 mysqldump 转储视图。我正在从 PHP 运行以下 mysqldump 命令:

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

而且它似乎没有转储视图(我使用 CREATE VIEW 创建的)。如何让它转储视图和表格?

【问题讨论】:

    标签: mysql views mysqldump


    【解决方案1】:

    根据this,您可能会遇到视图问题,因为您没有数据库的显式 SHOW VIEW 权限。

    “解决该问题的方法是管理员手动将 SHOW VIEW 权限授予被授予 CREATE VIEW 的用户,因为 MySQL 在创建视图时不会隐式授予它。”

    在所有其他情况下,视图应该在生成的转储文件中...虽然有点奇怪...它首先为视图创建临时表结构,然后是视图本身。这是因为可以在视图上创建视图......而对于 mysqldump,无法知道发生的顺序,所以它创建临时表,以避免在执行 dumpfile 以恢复数据库时出错。

    【讨论】:

    • 我会尝试添加 SHOW VIEW 权限,看看它是否有效。
    【解决方案2】:

    这对我有用

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-04
      • 1970-01-01
      • 1970-01-01
      • 2010-09-11
      • 2011-11-23
      • 1970-01-01
      相关资源
      最近更新 更多