是否可以使用 mysqldump 转储和导入视图?

Posted

技术标签:

【中文标题】是否可以使用 mysqldump 转储和导入视图?【英文标题】:Is it possible to dump and import views using mysqldump? 【发布时间】:2012-04-12 02:12:44 【问题描述】:

当我使用 mysqldump 并重新导入转储时,视图变为空表。

有没有可能

a) 转储然后导入视图而不将它们变成空表?

或者,如果a不可能,

b) 使用通配符从 mysqldump 中排除视图,例如

mysqldump mydb  --ignore-table=*views > mydb.sql

排除所有视图,如果所有视图的名称都以字符串“views”结尾? (这部分之前已被询问但仍未得到答复:Ignore 'views' in mysql db backup using mysqldump)

【问题讨论】:

【参考方案1】:

使用--compact --add-drop-table,然后手动调整转储文件。

详情:

--compact

产生更紧凑的输出。此选项启用--skip-add-drop-table, --skip-add-locks, --skip-comments, --skip-disable-keys, and --skip-set-charset 选项。 注意:

在 MySQL 5.1.21 之前,如果数据库转储包含视图,则此选项不会创建有效的 SQL。重新创建视图需要创建和删除临时表,此选项禁止删除这些临时表。作为一种解决方法,将 --compact 与 --add-drop-table 选项一起使用,然后手动调整转储文件。

【讨论】:

谢谢。现在我只需要说服管理员从 5.0.77 更新 “手动调整转储文件”是什么意思?在 5.1.21 之前或之后需要做什么以及它有什么不同? 能否请您解释一下手动调整转储文件是什么意思?

以上是关于是否可以使用 mysqldump 转储和导入视图?的主要内容,如果未能解决你的问题,请参考以下文章

使用 'mysqldump' 以 CSV 格式转储所有表

将 mysql 视图转储为包含数据的表 - 版本 2

MySQL 使用 mysqldump 转储SQL格式的数据及重新加载SQL格式的备份

来自远程主机的 mysqldump

pl/sql Developer如何导入dump文件

如何使用 kubernetes 从 mysqldump 恢复转储文件?