text: mysql — Benennen Sie die MySQL-Datenbank um
  /Benennen Sie die MySQL-Datenbank um
  Ich habe eine Datenbank mit dem Namen hrms erstellt. Jetzt muss ich den Datenbanknamen in sunhrm ändern. Es ist jedoch in der MySQL-Workbench deaktiviert. Kann ich das auf dem Linux-Server selbst machen?
  30.08.2012 Dhileepan
  Ich glaube nicht, dass du das schaffen kannst. Ich denke, Sie müssen diese Datenbank sichern, die neu benannte erstellen und dann den Speicherauszug importieren.
  Wenn es sich um ein Live-System handelt, müssen Sie es herunterfahren. Wenn dies nicht möglich ist, müssen Sie die Replikation von dieser Datenbank zur neuen Datenbank einrichten.
  Wenn Sie die entsprechenden Befehle anzeigen möchten, hat @jan die Details .
  30.08.2012 New Alexandria
  Falls Sie dies von der Kommandozeile aus tun müssen, kopieren Sie das Snippet und passen Sie es an:
  19.12.2012 jan
  Es ist möglich, die Datenbank mit dem Befehl mysqldump zu kopieren, ohne Dump in einer Datei zu speichern:
  24.07.2013 Hryhorii Hrebiniuk
  Sie können eine neue Datenbank genau wie die vorherige Datenbank erstellen und dann die alte Datenbank löschen, wenn Sie fertig sind. Erstellen Sie mit dem Tool mysqldump eine .sql-Sicherung der Datenbank über mysqldump orig_db > orig_db.sql. Wenn Sie einen Benutzernamen und ein Kennwort verwenden müssen, führen Sie mysqldump -u root -p orig_db > orig_db.sql aus. orig_db ist der Name der Datenbank, die Sie "umbenennen" möchten, root ist der Benutzer, unter dem Sie sich anmelden, und orig_db.sql ist die erstellte Datei, die die Sicherung enthält. Erstellen Sie nun eine neue, leere Datenbank mit dem gewünschten Namen für die Datenbank. Zum Beispiel mysql -u root -p -e "create database new_db". Sobald dies erledigt ist, führen Sie mysql -u root -p new_db < orig_db.sql aus. new_db existiert jetzt als perfekte Kopie von orig_db. Sie können die ursprüngliche Datenbank dann löschen, da sie jetzt mit dem gewünschten Datenbanknamen in der neuen Datenbank vorhanden ist.
  Die kurzen, schnellen Schritte ohne alle obigen Erklärungen sind:
  Ich hoffe, dies hilft und dies ist ein zuverlässiges Mittel, um dies zu erreichen, ohne eine Ad-hoc-Methode zu verwenden, die Ihre Daten beschädigen und Inkonsistenzen erzeugen wird.
  09.03.2013 jetole
  Sie können dies mit der RENAME-Anweisung für jede Tabelle in "current_db" tun, nachdem Sie das neue Schema "other_db" erstellt haben.
  Quelle Tabellensyntax umbenennen
  30.08.2012 Cristian Porta
  Nun, es gibt zwei Methoden:
  Methode 1 : Eine bekannte Methode zum Umbenennen des Datenbankschemas besteht darin, das Schema mit Mysqldump zu sichern, in einem anderen Schema wiederherzustellen und das alte Schema (falls erforderlich) zu löschen.
  Obwohl das obige Verfahren einfach ist, ist es zeit- und platzaufwendig. Was ist, wenn das Schema mehr als 100 GB ist? Es gibt Methoden, mit denen Sie die obigen Befehle zusammen ausführen können, um Platz zu sparen. Dies spart jedoch keine Zeit.
  Zur Behebung solcher Situationen gibt es eine andere schnelle Methode zum Umbenennen von Bei Schemata ist jedoch etwas Vorsicht geboten.
  Methode 2 : MySQL bietet eine sehr gute Funktion zum Umbenennen von Tabellen, die sogar in verschiedenen Schemata funktioniert. Diese Umbenennungsoperation ist atomar und niemand kann auf die Tabelle zugreifen, während sie umbenannt wird. Dies dauert eine kurze Zeit, da das Ändern eines Tabellennamens oder seines Schemas nur eine Änderung der Metadaten ist. Hier ist ein prozeduraler Ansatz für die Umbenennung:
  Erstellen Sie das neue Datenbankschema mit dem gewünschten Namen.
  Benennen Sie die Tabellen vom alten Schema in ein neues Schema um. Verwenden Sie dazu den MySQL-Befehl "RENAME TABLE".
  Löschen Sie das alte Datenbankschema.
  Wenn views, triggers, functions, stored procedures im Schema vorhanden ist, müssen diese ebenfalls neu erstellt werden. MySQLs "RENAME TABLE" schlägt fehl, wenn in den Tabellen Auslöser vorhanden sind. Zur Abhilfe können wir folgende Dinge tun:
  1) Dump the triggers, events and stored routines in a separate file. Dies erfolgt mithilfe von -E, -R-Flags (zusätzlich zu -t -d, die Die Auslöser speichert) für den Befehl mysqldump. Einmalige Auslöser sind entladen werden, müssen wir sie aus dem Schema löschen, für RENAME TABLE Befehl zur Arbeit.
  2) Erzeugt eine Liste von nur "BASE" -Tabellen. Diese können mit einem .__ gefunden werden. Abfrage der Tabelle information_schema.TABLES.
  3) Die Ansichten in eine Ausgangsdatei ausgeben. Ansichten können mit einer Abfrage unter .__ gefunden werden. dieselbe information_schema.TABLES-Tabelle.
  4) Lösche die Trigger für die aktuellen Tabellen im old_schema.
  5) Stellen Sie die obigen Dump-Dateien wieder her, wenn alle in Schritt 2 gefundenen "Base" -Tabellen umbenannt wurden.
  Komplikationen mit den oben genannten Methoden: Möglicherweise müssen wir die GRANTS für Benutzer so aktualisieren, dass sie mit dem richtigen schema_name übereinstimmen. Diese könnten mit einer einfachen UPDATE in mysql.columns_priv, mysql.procs_priv, mysql.tables_priv, mysql.db-Tabellen behoben werden, die die old_schema name auf new_schema aktualisieren und "Flush-Privilegien" aufrufen. . Obwohl "method 2" etwas komplizierter erscheint als "method 1", ist dies absolut skriptfähig. Mit einem einfachen Bash-Skript, das die oben genannten Schritte in der richtigen Reihenfolge ausführt, können Sie beim nächsten Umbenennen von Datenbankschemas Platz und Zeit sparen.
  Das Percona Remote DBA-Team hat ein Skript namens "rename_db" geschrieben, das auf folgende Weise funktioniert:
  Um die Verwendung dieses Skripts zu veranschaulichen, wurde ein Beispielschema "emp" verwendet, Testauslöser erstellt und Routinen in diesem Schema gespeichert. Es wird versucht, das Datenbankschema mithilfe des Skripts umzubenennen. Dies dauert einige Sekunden und nicht die zeitaufwändige Dump/Restore-Methode.
  Wie Sie in der obigen Ausgabe sehen können, wurde das Datenbankschema "emp" in weniger als einer Sekunde in "emp_test" umbenannt .. _. Zuletzt ist dies das Skript von Percona, das oben für "method 2" verwendet wird.
  29.01.2014 Sathish D
  Kurz nein Es wird allgemein für zu gefährlich gehalten, eine Datenbank umzubenennen. MySQL hatte dieses Feature für eine Weile, aber es wurde entfernt. Sie sollten die Workbench besser verwenden, um sowohl das Schema als auch die Daten nach SQL zu exportieren, und dann den CREATE DATABASE-Namen dort zu ändern, bevor Sie ihn ausführen/importieren.
  30.08.2012 Luke Wyatt
  Für ungeduldige Mysql-Benutzer (wie ich) lautet die Lösung:
  12.01.2013 user1972813
  Ich habe folgende Methode verwendet, um die Datenbank umzubenennen
  sichern Sie die Datei mit mysqldump oder einem anderen DB-Tool, z. B. heidiSQL, mysql administrator etc
  Öffnen Sie die Sicherungsdatei (z. B. backupfile.sql) in einem Texteditor.
  Suchen und ersetzen Sie den Datenbanknamen und speichern Sie die Datei.
  Stellen Sie die bearbeitete SQL-Datei wieder her
  11.09.2013 Adarsha
  Wenn Ihre Datenbank nur MyISAM-Tabellen enthält (do not verwenden Sie diese Methode, wenn Sie InnoDB-Tabellen haben):
  fahren Sie den MySQL-Server herunter
  gehen Sie in das Verzeichnis mysql data und benennen Sie das Datenbankverzeichnis um (Hinweis: Nicht-Alpha-Zeichen müssen auf besondere Weise codiert werden.)
  ggf. Berechtigungen anpassen (Zugriff auf den neuen DB-Namen gewähren)
  Sie können alles in einem einzigen Befehl schreiben, sodass die Ausfallzeit nur ein oder zwei Sekunden beträgt.
  02.04.2014 rustyx
  Sichern Sie zuerst die alte Datenbank namens HRMS und bearbeiten Sie die Skriptdatei, indem Sie das Word HRMS in SUNHRM ersetzen. Nach diesem Schritt importieren Sie die Datenbankdatei in das mysql
  24.12.2012 Dhileepan
  Eine andere Möglichkeit, die Datenbank umzubenennen oder ein Image der Datenbank zu erstellen, ist die Option Reverse Engineering auf der Registerkarte "Datenbank". Es wird ein ERR-Diagramm für die Datenbank erstellt. Benennen Sie das Schema dort um.