Comment renommer une base de données MySQL?
Le manuel en ligne de MySQL mentionne la commande RENAME DATABASE (cette page de documentation a été supprimée par Oracle il y a quelque temps):
Cette déclaration a été ajoutée dans MySQL 5.1.7 mais s'est avérée dangereuse et a été supprimée dans MySQL 5.1.23.
Alors, comment procéder? La raison: nous avons commencé avec un nom de code pour le projet et nous souhaitons que le nom de la base de données reflète maintenant le nom définitif du projet.
Réponses:
De ce billet de blog d'Ilan Hazan:
Dans MySQL, le renommage de la base de données n’est pas pris en charge. Pour renommer une base de données MySQL, vous pouvez effectuer l’une des opérations suivantes:
Créez une nouvelle base de données et renommez toutes les tables de l'ancienne base pour qu'elles soient dans la nouvelle base de données:
Dans le shell Linux, utilisez mysqldump pour sauvegarder l'ancienne base de données, puis restaurez la base de données vidée sous un nouveau nom à l'aide de l'utilitaire MySQL. Enfin, utilisez la commande drop database pour supprimer l’ancienne base de données. Cette option peut mal fonctionner pour une base de données volumineuse.
Écrire un script Linux simple (ma solution préférée)
Si toutes vos tables sont MyISAM, vous pouvez renommer l'ancien nom du dossier de la base de données:
la source
SELECT CONCAT('olddb.', TABLE_NAME, ' TO newdb.', TABLE_NAME, ',') FROM INFORMATION_SCHEMA.TABLES WHERE table_schema='olddb';
;MySQL est un peu nul pour ça. La seule solution solide et fiable consiste à utiliser
phpMyAdmin
.Login
-> clickScheme
-> clickOperations
-> trouverRename database to:
-> écrireNewName
> clickGo
.Aussi simple que cela. Toutes les autorisations sont reportées.
la source
J'ai trouvé une solution très simple: fermez MySQL, renommez le répertoire de la base de données et redémarrez. C'est tout!
C'est un peu dangereux si vous avez du code SQL ou des données faisant référence à l'ancien nom. Ensuite, vous devez également changer cela avant de redémarrer l'application. Mais je n'avais pas besoin de faire ça, mais YMV.
Googling donne quelques indications comme celles-ci:
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
la source
J'ai tendance à créer une nouvelle base de données, puis à vider les tables de l'ancienne, dans un fichier .sql (avec mysqldump), à l'éditer, à en faire une sorte de
s/old_database/new_database/g
, puis à le réimporter dans la nouvelle base de données.Ce n'est probablement pas la meilleure façon de le faire, mais cela fonctionne.
la source
Si vous avez la possibilité d'utiliser un outil de gestion MySQL (par exemple, phpMyAdmin), vous pouvez le renommer facilement car ils créeront la requête pour vous.
Dans phpMyAdmin, ils créent également chaque table et insèrent les données par "INSERT INTO ... SELECT * FROM ...". Donc, en enchaînant, ils copient les données.
Si vous ne pouvez pas faire cela, je vous conseillerais de faire une sauvegarde et de réimporter le fichier SQL dans une nouvelle base de données.
Bonne chance!
Cordialement, Ben.
la source
J'ai utilisé la méthode suivante pour renommer la base de données
effectuer une sauvegarde du fichier en utilisant mysqldump ou tout autre outil de base de données, par exemple heidiSQL, administrateur mysql, etc.
Ouvrez le fichier de sauvegarde (par exemple, backupfile.sql) dans un éditeur de texte.
Rechercher et remplacer le nom de la base de données et enregistrer le fichier.
Restaurer le fichier SQL modifié
la source