Come posso rinominare rapidamente un database MySQL (cambiare il nome dello schema)?

Il manuale di MySQL a MySQL copre questo.

Di solito mi limito a scaricare il database e a reimportarlo con un nuovo nome. Questa non è un'opzione per database molto grandi. Apparentemente RENAME {DATABASE | SCHEMA} db_name TO new_db_name; fa brutte cose, esiste solo in una manciata di versioni, ed è una cattiva idea in generale.

Questo deve funzionare con InnoDB, che memorizza le cose in modo molto diverso da MyISAM.

Tre opzioni:

  1. Creare il nuovo database, portare giù il server, spostare i file da una cartella di database all'altra e riavviare il server. Nota che questo funzionerà solo se TUTTE le tue tabelle sono MyISAM.

  2. Creare il nuovo database, usare CREATE TABLE ... LIKE, e poi usa INSERT ... SELECT * FROM.

  3. Usate mysqldump e ricaricate con quel file.

Commentari (2)

MySQL non supporta la ridenominazione di un database attraverso la sua interfaccia di comando al momento, ma è possibile rinominare il database se si ha accesso alla directory in cui MySQL memorizza i suoi database. Per le installazioni predefinite di MySQL questa è di solito nella directory Data sotto la directory dove è stato installato MySQL. Individua il nome del database che vuoi rinominare nella directory Data e rinominalo. Rinominare la directory potrebbe però causare alcuni problemi di permessi. Fate attenzione.

Nota: Devi fermare MySQL prima di poter rinominare il database

Ti consiglierei di creare un nuovo database (usando il nome che vuoi) ed esportare/importare i dati che ti servono dal vecchio al nuovo. Abbastanza semplice.

Commentari (1)

Quando rinominate un database in PHPMyAdmin crea un dump, poi elimina e ricrea il database con il nuovo nome.

Commentari (1)