Wie benenne ich eine MySQL-Datenbank um?
Im MySQL-Online-Handbuch wurde über den Befehl RENAME DATABASE berichtet (diese Dokumentationsseite wurde vor einiger Zeit von Oracle entfernt):
Diese Anweisung wurde in MySQL 5.1.7 hinzugefügt, wurde jedoch als gefährlich eingestuft und in MySQL 5.1.23 entfernt.
Also, wie geht es weiter? Die Begründung: Wir haben mit einem Codenamen für das Projekt begonnen und möchten, dass der Datenbankname jetzt den endgültigen Namen des Projekts widerspiegelt.
Antworten:
Aus diesem Blogbeitrag von Ilan Hazan:
In MySQL wird das Umbenennen von Datenbanken nicht unterstützt. Um eine MySQL-Datenbank umzubenennen, haben Sie folgende Möglichkeiten:
Erstellen Sie eine neue Datenbank, und benennen Sie alle Tabellen in der alten Datenbank so um, dass sie in der neuen Datenbank enthalten sind:
Verwenden Sie in der Linux-Shell mysqldump, um die alte Datenbank zu sichern, und stellen Sie dann die gespeicherte Datenbank mit dem MySQL-Dienstprogramm unter einem neuen Namen wieder her. Verwenden Sie schließlich den Befehl drop database, um die alte Datenbank zu löschen. Diese Option kann bei großen Datenbanken eine schlechte Leistung erzielen.
Schreiben Sie ein einfaches Linux-Skript (meine Lieblingslösung)
Wenn alle Ihre Tabellen MyISAM sind, können Sie den alten Datenbankordnernamen umbenennen:
quelle
SELECT CONCAT('olddb.', TABLE_NAME, ' TO newdb.', TABLE_NAME, ',') FROM INFORMATION_SCHEMA.TABLES WHERE table_schema='olddb';
.MySQL ist ein bisschen scheiße dafür. Die einzige zuverlässige Lösung ist die Verwendung
phpMyAdmin
.Login
-> clickScheme
-> clickOperations
-> findenRename database to:
-> schreibenNewName
> clickGo
.So einfach ist das. Alle Berechtigungen werden übertragen.
quelle
Ich habe eine sehr einfache Lösung gefunden: MySQL herunterfahren, das Datenbankverzeichnis umbenennen und neu starten. Das ist alles!
Es ist ein bisschen gefährlich, wenn Sie SQL-Code oder Daten haben, die auf den alten Namen verweisen. Dann müssen Sie dies ebenfalls ändern, bevor Sie die Anwendung neu starten. Aber das musste ich nicht machen, sondern YMV.
Googeln gibt ein paar Hinweise wie diese beiden:
https://stackoverflow.com/questions/67093/how-do-i-quickly-rename-a-mysql-database-change-schema-name
http://www.delphifaq.com/faq/databases/mysql/f574.shtml
quelle
Ich neige dazu, eine neue Datenbank zu erstellen und dann die Tabellen aus der alten in eine .sql-Datei (mit mysqldump) zu kopieren, die Datei zu bearbeiten, eine Art von zu erledigen
s/old_database/new_database/g
und sie dann wieder in die neue Datenbank zu importieren .Wahrscheinlich nicht der beste Weg, es zu tun, aber es funktioniert.
quelle
Wenn Sie die Möglichkeit haben, ein MySQL Management-Tool (zB phpMyAdmin) zu verwenden, können Sie es einfach umbenennen, während sie die Abfrage für Sie erstellen.
In phpMyAdmin erstellen sie auch jede Tabelle und fügen die Daten mit "INSERT INTO ... SELECT * FROM ..." ein. Durch Verketten kopieren sie also die Daten.
Wenn Sie dies nicht tun können, würde ich empfehlen, einen Speicherauszug zu erstellen und die SQL-Datei erneut in eine neue Datenbank zu importieren.
Viel Glück!
Grüße, Ben.
quelle
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 usw
Öffnen Sie die Sicherungsdatei (zB backupfile.sql) in einem Texteditor.
Suchen und ersetzen Sie den Datenbanknamen und speichern Sie die Datei.
Stellen Sie die bearbeitete SQL-Datei wieder her
quelle