Comment renommer une base de données MySQL (changer le nom du schéma) ?
P粉320361201
2023-08-23 13:09:22
<p>Comment renommer rapidement une base de données MySQL (changer son nom de schéma) ? </p>
<p>Habituellement, je vide simplement la base de données et la réimporte avec un nouveau nom. Pour les très grandes bases de données, ce n'est pas une option. Apparemment, <code>RENAMED {DATABASE|SCHEMA} db_name TO new_db_name;</code> fait quelque chose de mal, n'existe que dans quelques versions et est globalement une mauvaise idée. </p>
<p>Ceci doit être utilisé avec InnoDB, qui stocke un contenu très différent de celui de MyISAM. </p>
Utilisez ces quelques commandes simples :
Ou pour réduire les E/S, utilisez ce qui suit comme suggéré par @Pablo Marin-Garcia :
Pour InnoDB, ce qui suit semble fonctionner : créez une nouvelle base de données vide, puis renommez chaque table tour à tour en la nouvelle base de données :
Vous devrez ensuite ajuster les autorisations.
Pour écrire des scripts dans le shell, vous pouvez utiliser l'une des méthodes suivantes :
ou
Remarque :
Rubrique- Options
-
-
-p
和密码之间没有空格。如果您的数据库没有密码,请删除-u username -ppassword
.Si une table a des déclencheurs, elle ne peut pas être déplacée vers une autre base de données en utilisant la méthode ci-dessus (cela entraînera une
触发器错误架构
erreur). Si tel est le cas, clonez la base de données en utilisant les méthodes traditionnelles puis supprimez l'ancienne base de données :mysqldump old_db | mysql new_db
Si vous avez des procédures stockées, vous pouvez ensuite les copier :
mysqldump -R old_db | mysql new_db