我想使用 mysqlsh 执行以下操作:
mysqldump -R DATABASE > DATABASE.sql
相同)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粉7647859242024-03-27 10:18:17
我认为您只需在尝试加载 .sql
文件之前使用文本编辑器对其进行编辑即可。
该工具实际上用于转储架构并将其导入到不同的 MySQL 实例,但保持架构名称不变。