Maison >base de données >tutoriel mysql >Comment puis-je renommer de manière fiable une base de données MySQL avec les tables InnoDB ?

Comment puis-je renommer de manière fiable une base de données MySQL avec les tables InnoDB ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-10 10:32:12231parcourir

How Can I Reliably Rename a MySQL Database with InnoDB Tables?

Renommer une base de données MySQL : un guide détaillé pour les tables InnoDB

Renommer une base de données MySQL, également connu sous le nom de changement de son nom de schéma, peut être un défi, en particulier pour les grandes bases de données. La méthode habituelle de dumping et de réimportation est inefficace, tandis que RENAME {DATABASE | La commande SCHEMA} n'est pas recommandée pour diverses raisons.

Cependant, il existe une solution fiable pour les tables InnoDB. Suivez ces étapes :

  1. Créez la nouvelle base de données : Créez une base de données vide avec le nouveau nom.
  2. Renommez les tables individuellement : Pour chaque table de l'ancienne base de données, utilisez la commande SQL suivante pour la renommer dans la nouvelle base de données :
RENAME TABLE old_db.table TO new_db.table;
  1. Ajuster les autorisations : Après avoir renommé les tables, ajustez les autorisations selon vos besoins.
  2. Script de ligne de commande : Pour automatiser le processus de changement de nom, vous pouvez utiliser une ligne de commande script :
mysql -u username -ppassword old_db -sNe 'show tables' | while read table; \
do mysql -u username -ppassword -sNe "rename table old_db.$table to new_db.$table"; done

Remarques :

  • Supprimez la partie "-u username -ppassword" si la base de données n'a pas de mot de passe.
  • Si une table a un déclencheur, utilisez la méthode traditionnelle de clonage de la base de données avec mysqldump :
mysqldump old_db | mysql new_db
  • Les procédures stockées peuvent être copiées ultérieurement en utilisant :
mysqldump -R old_db | mysql new_db

En suivant ces étapes, vous pouvez renommer de manière efficace et fiable un MySQL base de données avec les tables InnoDB.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn