如何在 MySQL 中重命名模式

Posted

技术标签:

【中文标题】如何在 MySQL 中重命名模式【英文标题】:how does one rename a schema in MySQL 【发布时间】:2010-10-04 04:20:34 【问题描述】:

您好,我使用的是 mysql 5.0.x

如何重命名架构?

【问题讨论】:

How do I quickly rename a MySQL database (change schema name)?的可能重复 【参考方案1】:

这很容易。将数据库导出到文件,然后在工作台中再次导入,您可以在那里指定数据库的名称。

在工作台中,转到“服务器”选项卡,选择“数据导出”。 选择要重命名的数据库,选择导出到自包含文件,然后为文件命名。确保您选择了转储结构和数据。点击开始导出。

在工作台中,转到“服务器”选项卡,选择“数据导入”。 选择从自包含文件导入。选择您创建的文件。 在标题为要导入的默认架构的部分中单击新选项。 输入数据库的新名称,然后从下拉列表中选择它。 点击开始导入。

瞧,具有您想要的名称的新数据库以及旧数据库中的所有表和数据。

【讨论】:

【参考方案2】:

不要使用重命名数据库!!!

早期的 5.1 版本有此命令,但已被删除,因为它会损坏数据 (reference)。

目前唯一的办法是

mysqladmin create new_db_name
mysqldump db_name | mysql new_db_name

参考here

编辑:显然,一旦这个问题得到解决,这个答案就会过时。

【讨论】:

从我的旧模式中转储内容并将其导入新模式(如上所述)转移了我的表和视图,但没有转移函数! 如果需要用户名和密码,可以修改为:mysqladmin -u root -pmypassword create new_db_name,后跟mysqldump -u root -pmypassword db_name | mysql -u root -pmypassword new_db_name。如果需要重命名而不是复制,请使用mysqladmin -u root -pmypassword drop db_name 完成。 数据库字符集也没有被传输。例如我的旧数据库的字符集是 utf8,新数据库是 latin1。【参考方案3】:

在 5.0 下,您需要转储数据库并将其重新加载到具有新名称的新数据库中。如果升级到 5.1,可以查找并使用 RENAME DATABASE 命令。

【讨论】:

查看其他答案。建议不要使用此解决方案,因为它可能会损坏您的数据库。在其他版本中它已被禁用。

以上是关于如何在 MySQL 中重命名模式的主要内容,如果未能解决你的问题,请参考以下文章

如何在 MySQL 的一个原子操作中重命名两个表

在 MySQL 中重命名表

如何在 Emacs 中重命名打开的文件?

详解MYSQL中重命名procedure的一种方法

在 MySQL 中重命名外键列

在 MySQL 中重命名外键列