Je souhaite utiliser mysqlsh pour effectuer les opérations suivantes :
mysqldump -R DATABASE > DATABASE.sql
) mysql --database=NEWDATABASE < DATABASE.sql
)Quand je cours mysqlsh --execute 'util.dumpTables("DATABASE", [], "SQL/DATABASE", {all:true});'
时,它当然只是转储表,这可以轻松地使用此命令导入到全新的数据库 mysqlsh --database=NEWDATABASE --execute 'util.loadDump("SQL/DATABASE", {schema: 'NEWDATABASE',ignoreVersion:true,resetProgress:true});
. Le problème est qu'il manque des fonctions et des procédures stockées.
Ensuite, j'ai essayé mysqlsh --execute 'util.dumpSchemas(["DATABASE"], "DATABASE");'
,然后使用 mysqlsh --database=NEWDATABASE --execute 'util 将其加载到新数据库中.loadDump("DATABASE", {dryRun: true,ignoreVersion:true});'
mais j'ai immédiatement remarqué qu'il essayait de se charger dans la base de données d'origine, pas dans ma nouvelle base de données. Alors, comment puis-je le charger dans une nouvelle base de données avec un nom complètement différent ?
Au cas où vous vous poseriez la question, j'essaie d'apprendre à tirer le meilleur parti de mysqlsh pour mon cas d'utilisation. L’ancien mysqldump
n’est donc pas une option dans ce cas.
Je pense que vous pouvez simplement utiliser un éditeur de texte pour modifier le fichier
.sql
avant d'essayer de le charger.Cet outil vide le schéma et l'importe dans une autre instance MySQL, mais conserve le même nom de schéma.