mysqlsh 转储和加载完整模式
P粉662802882
P粉662802882 2024-03-26 15:02:15
0
1
457

我想使用 mysqlsh 执行以下操作:

  1. 转储给定数据库的完整架构(不仅仅是表,还有函数、触发器以及与此数据库架构相关的所有内容,与 mysqldump -R DATABASE > DATABASE.sql 相同)
  2. 将此完整架构加载到我刚刚创建的全新数据库中(类似于 mysql --database=NEWDATABASE < DATABASE.sql

当我运行 mysqlsh --execute 'util.dumpTables("DATABASE", [], "SQL/DATABASE", {all:true});' 时,它当然只是转储表,这可以轻松地使用此命令导入到全新的数据库 mysqlsh --database=NEWDATABASE --execute 'util.loadDump("SQL/DATABASE", {schema: 'NEWDATABASE',ignoreVersion:true,resetProgress:true});。问题是它缺少函数和存储过程。

然后我尝试了 mysqlsh --execute 'util.dumpSchemas(["DATABASE"], "DATABASE");',然后使用 mysqlsh --database=NEWDATABASE --execute 'util 将其加载到新数据库中.loadDump("DATABASE", {dryRun: true,ignoreVersion:true});',但我立即注意到它正在尝试加载到原始数据库,而不是我的新数据库。那么如何将其加载到一个名称完全不同的新数据库中呢?

如果您想知道,我正在尝试学习如何最大限度地利用 mysqlsh 来满足我的用例。因此,在这种情况下,旧的 mysqldump 不是一个选项。

P粉662802882
P粉662802882

全部回复(1)
P粉764785924

我认为您只需在尝试加载 .sql 文件之前使用文本编辑器对其进行编辑即可。

该工具实际上用于转储架构并将其导入到不同的 MySQL 实例,但保持架构名称不变。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板