我想使用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});'将它加载到一个新的DB中,但是我立即注意到它试图加载到原始数据库,而不是我的新数据库。那么,如何将其加载到一个新的数据库中,一个名称完全不同的数据库呢?
如果您想知道,我正在尝试学习如何为我的用例最大化mysqlsh。因此,在这种情况下,旧的mysqldump不是一个选项。
发布于 2022-08-20 22:41:20
我认为,在尝试加载.sql文件之前,您只需使用文本编辑器编辑它。
这个工具实际上是用于转储模式并将它们导入到不同的MySQL实例,但保持模式名称不变。
https://stackoverflow.com/questions/73430362
复制相似问题