Jak zmienić nazwę bazy danych MySQL?
Instrukcja online MySQL mówi o poleceniu RENAME DATABASE (ta strona dokumentacji została usunięta przez Oracle jakiś czas temu):
To oświadczenie zostało dodane w MySQL 5.1.7, ale okazało się niebezpieczne i zostało usunięte w MySQL 5.1.23.
Jak więc postępować? Uzasadnienie: Zaczęliśmy od nazwy kodowej projektu i chcemy, aby nazwa bazy danych odzwierciedlała teraz ostateczną nazwę projektu.
Odpowiedzi:
Z tego postu na blogu Ilana Hazana:
W MySQL nie ma obsługi zmiany nazwy bazy danych. Aby zmienić nazwę bazy danych MySQL, możesz wykonać jedną z następujących czynności:
Utwórz nową bazę danych i zmień nazwy wszystkich tabel w starej bazie danych, aby znajdowały się w nowej bazie danych:
W powłoce Linux użyj mysqldump do wykonania kopii zapasowej starej bazy danych, a następnie przywróć zrzuconą bazę danych pod nową nazwą za pomocą narzędzia MySQL. Na koniec użyj polecenia drop database, aby usunąć starą bazę danych. Ta opcja może źle działać w przypadku dużej bazy danych.
Napisz prosty skrypt systemu Linux (moje ulubione rozwiązanie)
Jeśli wszystkie tabele to MyISAM, możesz zmienić nazwę starej nazwy folderu bazy danych:
źródło
SELECT CONCAT('olddb.', TABLE_NAME, ' TO newdb.', TABLE_NAME, ',') FROM INFORMATION_SCHEMA.TABLES WHERE table_schema='olddb';
;MySQL jest do tego do bani. Jedynym solidnym i niezawodnym rozwiązaniem jest użycie
phpMyAdmin
.Login
-> clickScheme
-> clickOperations
-> znajdźRename database to:
-> napiszNewName
> clickGo
.Tak proste jak to. Wszystkie uprawnienia są przenoszone.
źródło
Znalazłem bardzo proste rozwiązanie: zamknij MySQL, zmień nazwę katalogu bazy danych i uruchom ponownie. To wszystko!
Jest to trochę niebezpieczne, jeśli masz kod SQL lub dane odnoszące się do starej nazwy. Następnie musisz to zmienić również przed ponownym uruchomieniem aplikacji. Ale nie musiałem tego robić, ale YMV.
Googling podaje kilka wskazówek, takich jak te dwa:
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
źródło
Zwykle tworzę nową bazę danych, a następnie zrzucam tabele ze starej do pliku .sql (z mysqldump), edytuję plik, robię coś,
s/old_database/new_database/g
a następnie ponownie importuję go do nowej bazy danych .Prawdopodobnie nie jest to najlepszy sposób na zrobienie tego, ale działa.
źródło
Jeśli masz szansę użyć narzędzia MySQL Management-Tool (np. PhpMyAdmin), możesz łatwo zmienić jego nazwę, tworząc dla Ciebie zapytanie.
W phpMyAdmin tworzą również każdą tabelę i wstawiają dane poprzez „INSERT INTO ... SELECT * FROM…”. W ten sposób kopiują dane.
Jeśli nie możesz tego zrobić, polecam zrobić zrzut i ponownie zaimportować plik SQL do nowej bazy danych.
Powodzenia!
Pozdrawiam, Ben.
źródło
Użyłem następującej metody, aby zmienić nazwę bazy danych
wykonaj kopię zapasową pliku za pomocą mysqldump lub dowolnego narzędzia DB, np. heidiSQL, administrator mysql itp
Otwórz plik kopii zapasowej (np. Backupfile.sql) w edytorze tekstu.
Wyszukaj i zamień nazwę bazy danych i zapisz plik.
Przywróć edytowany plik sql
źródło