Heim  >  Fragen und Antworten  >  Hauptteil

MySQL-Dump und vollständiges Schema laden

Ich möchte MySQL verwenden, um Folgendes zu tun:

  1. Ergibt das vollständige Schema einer bestimmten Datenbank (nicht nur Tabellen, sondern auch Funktionen, Trigger und alles, was mit diesem Datenbankschema zusammenhängt, genau wie mysqldump -R DATABASE > DATABASE.sql)
  2. Laden Sie dieses vollständige Schema in eine brandneue Datenbank, die ich gerade erstellt habe (ähnlich mysql --database=NEWDATABASE < DATABASE.sql)

Wenn ich laufe mysqlsh --execute 'util.dumpTables("DATABASE", [], "SQL/DATABASE", {all:true});' 时,它当然只是转储表,这可以轻松地使用此命令导入到全新的数据库 mysqlsh --database=NEWDATABASE --execute 'util.loadDump("SQL/DATABASE", {schema: 'NEWDATABASE',ignoreVersion:true,resetProgress:true});. Das Problem besteht darin, dass Funktionen und gespeicherte Prozeduren fehlen.

Dann habe ich es versucht mysqlsh --execute 'util.dumpSchemas(["DATABASE"], "DATABASE");',然后使用 mysqlsh --database=NEWDATABASE --execute 'util 将其加载到新数据库中.loadDump("DATABASE", {dryRun: true,ignoreVersion:true});', aber mir ist sofort aufgefallen, dass versucht wurde, in die ursprüngliche Datenbank zu laden, nicht in meine neue Datenbank. Wie lade ich es also in eine neue Datenbank mit einem völlig anderen Namen?

Falls Sie sich fragen: Ich versuche zu lernen, wie ich MySQL für meinen Anwendungsfall optimal nutzen kann. Das alte mysqldump ist in diesem Fall also keine Option.

P粉662802882P粉662802882206 Tage vor421

Antworte allen(1)Ich werde antworten

  • P粉764785924

    P粉7647859242024-03-27 10:18:17

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

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

    Antwort
    0
  • StornierenAntwort