Ich versuche mit mysqldump eine Datenbank zu exportieren, die mit einem anderen Datenbanknamen importiert werden muss. Wenn man sich das von mysqldump generierte SQL anschaut, scheint es, dass Trigger die einzigen Objektnamen sind, die mit dem Namen der Quelldatenbank vollständig qualifiziert sind, so dass meine Bedürfnisse nicht berücksichtigt werden. Gibt es überhaupt einen Hinweis darauf, dass mysqldump Objektnamen einschließlich Triggern nicht vollständig qualifiziert?mysqldump Qualifiziert vollständig Trigger mit Datenbankname
Antwort
Ich hatte das gleiche Problem und ich fand die Lösung. Ich habe MySQL Workbench verwendet, um meine Datenbank zu entwerfen, und ich habe dort einige Trigger erstellt. Alle verwendeten die Syntax CREATE TRIGGER trigger_name
außer einem: CREATE TRIGGER dbname.trigger_name
(es war nur mein Fehler). Die Mysqldump-Ausgabe enthielt alle Trigger auf die gleiche Weise: nur einer hatte einen Datenbanknamen.
Mysqldump verwendet Ihre ursprünglichen CREATE TRIGGER
Anweisungen, die Sie über SHOW CREATE TRIGGER
sehen können. Wenn Sie einen Trigger mit einem Datenbanknamen definiert haben, ersetzen Sie ihn einfach (drop and create) durch einen ohne dbname.
Wahrscheinlich fügen Sie beim Erstellen des Triggers den Datenbanknamen hinzu. Versuchen Sie, Ihren Trigger ohne den Datenbanknamen zu aktualisieren.
Es ist eine Weile her, seit ich damit zu tun hatte, aber ich bin mir ziemlich sicher, dass das Problem nicht auf die Erstellung der Trigger mit dem voll qualifizierten Datenbanknamen zurückzuführen war: mysqldump würde das Triggererstellungsscript mit dem Datenbanknamen generieren vollqualifiziert, unabhängig davon, wie ich sie erstellt habe. –
Keine ideale Lösung, aber Pumpen der Ausgabe durch die folgenden hat den Datenbanknamen auf den Auslösern für mich losgeworden.
mysqldump ... opts ... | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/'
- 1. Datenbankname aus DDL-Trigger abrufen
- 2. eine Tabelle mit mysqldump ignorieren?
- 3. mysqldump mit Datenbankzeile erstellen
- 4. Re-Export qualifiziert?
- 5. C# qualifiziert Import
- 6. Wie Datenbankname aus Verbindungszeichenfolge mit SqlConnectionStringBuilder
- 7. PostgreSQL JDBC URL mit Datenbankname enthält Schrägstrich
- 8. Warum kann ein Enum-Wert in einer switch-Anweisung nicht vollständig qualifiziert werden?
- 9. Mysqldump Frage
- 10. Backup-Datenbank mit PHP - mysqldump
- 11. Amazon RDS mysqldump Probleme
- 12. mysqldump Kompression
- 13. mysqldump mit where-Klausel mit referenzieller Integrität
- 14. Azure-Web-Rolle mit Transient-Fehlerbehandlung Block-Ausnahme: Der Pfad ist zu lang, nachdem er vollständig qualifiziert wurde
- 15. Was ist ein gültiger PostgreSQL-Datenbankname?
- 16. Sybase iAnywhere.Data.SQLAnywhere.SAException: DSN-Datenbankname existiert nicht
- 17. Batch MysqlDump Fehler
- 18. Dateipfade müssen voll qualifiziert sein - Puppet
- 19. Dateigröße 0 mysqldump
- 20. Müssen Aufrufe von Std-Konstruktoren qualifiziert werden?
- 21. Multi und Parallel Monte Carlo fehlgeschlagen mit Schlüsselfehler (auf Datenbankname)
- 22. Das Transaktionslog für Datenbank 'Datenbankname' ist voll.
- 23. mysqldump mit db in einer separaten Datei
- 24. mysqldump mit --Wo Klausel funktioniert nicht
- 25. Verwenden von GZIP-Komprimierung mit mysqldump
- 26. Hinzufügen von Anführungszeichen zu MySQLdump mit Sed
- 27. mysqldump von Remote-Host
- 28. Mysqldump: Got Fehler: 1449:
- 29. mysqldump der letzten Aufzeichnungen
- 30. mysqldump aus einer Abfrage
Ich werde das nicht überprüfen (es ist über zwei Jahre her, seit ich es gebraucht habe, und ich werde es in absehbarer Zeit nicht brauchen), aber das klingt nach einer plausiblen und praktischen Lösung, also markiere ich es als Antwort! Danke für das Teilen. –
Ha, ich sehe, dass @emre diese Lösung vor über einem Jahr vorgeschlagen hat und ich ihn abgeschossen habe. Nichtsdestoweniger war sein Verdacht, und deins ist ein Beharren, also werde ich Sie mit der markierten Antwort verlassen. Wenn irgendjemand anderes das Gegenteil findet, werden wir das dann berücksichtigen. Im Moment denke ich, dass es eine gute Chance gibt, dass Ihr Rat anderen hilft. –
Nun, ich habe es gerade getestet, weil ich das gleiche Problem hatte. Wenn es wichtig ist, ist meine MySQL Server Version 5.5.29-0ubuntu0.12.04.1 – ducin