暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

[译文] 如何重命名 MySQL 数据库

原创 DbForge 团队 2021-07-28
1708

更改 MySQL 中的数据库名称似乎很有必要。我们曾经应用一个简单的 RENAME DATABASE 命令更改过名称,该命令存在于早期版本的 MySQL 中。然而,它在较新的版本中不再可用,因为它带来了风险。原因是 RENAME DATABASE 查询可能导致基本数据库内容的丢失,这显然是不可取的。

重命名表方法

有一种方法可以非常轻松地执行此任务。事实上,MySQL 5.5(及更高版本)默认使用 InnoDB 存储引擎,这可以派上用场。
简而言之,我们可以在 MySQL 提示符下应用 RENAME TABLE 命令来更改特定表的数据库名称,同时保持表名不变。但要这样做,我们首先需要使用以下mysqladmin shell 命令创建一个新数据库:

$ mysqladmin -u username -p"password" create newDbname

现在我们已经创建了一个空数据库,我们需要使用以下命令将表从以前的数据库一张一张地移动到新创建的数据库中:

RENAME TABLE oldDbname.table TO newDbname.table;

如您所见,查询允许我们一次只移动一个表,这对于大型数据库来说不太实用。此外,RENAME TABLE 命令不适用于视图和触发器。我们必须删除并再次创建它们,而不是运行上述语句。

转储方式

在 MySQL 中重命名数据库的另一种方法是使用mysqldump shell 命令。这样,我们可以创建数据库的转储副本并将整个数据库内容导入新数据库。之后,如果有必要,我们可以删除旧数据库。

首先,我们需要通过在 shell 提示符下运行以下命令来转储旧数据库:

$ mysqldump -u username -p"password" -R oldDbname > oldDbname.sql

该命令创建一个物理备份,其中包含所有数据库数据以及存储过程和函数。

接下来,我们需要使用上面提到的命令来创建一个新的数据库:

$ mysqladmin -u username -p"password" create newDbname

最后,我们需要将第一步创建的转储文件导入到新数据库中:

$ mysql -u username -p"password" newDbname < oldDbname.sql

尽管这种方法看起来很简单,但当我们处理更大的数据库时可能需要相当长的时间。因此,它仍然有很多不足之处。

出于这些原因,我们建议查看更有效、更方便地重命名 MySQL 数据库的方法。为了说明它们,我们将使用 dbForge Studio for MySQL,这是一个提供强大数据库开发、管理和管理功能的 IDE。在它的帮助下,我们可以通过三种简单而有效的方法重命名数据库,即备份和恢复、模式和数据比较以及复制数据库方法。

使用 dbForge Studio for MySQL 的备份和恢复方法

这种方法的本质是创建数据库的备份副本,然后使用不同的名称还原数据库。

  1. 在数据库菜单上,选择备份和恢复,然后单击备份数据库。

image.png

  1. 在数据库备份向导中,指定必要的选项(连接、数据库、路径、输出文件名)并单击下一步继续。

image.png

  1. 选择包括备份的所有对象。

image.png

  1. 如有必要,指定详细的备份选项并单击备份按钮。

image.png

  1. 单击完成以完成备份过程。

image.png

  1. 现在,让我们恢复数据库并给它一个新名称。因此,在“数据库”菜单上选择“还原数据库”。

image.png

  1. 在数据库还原向导中,指定新数据库名称和备份文件目标路径。

image.png

  1. 单击“恢复”,完成该过程后,单击“完成”。

image.png

  1. 恭喜,您已经通过几个简单的步骤成功地重命名了您的数据库!

image.png

使用 dbForge Studio for MySQL 的架构和数据比较方法

我们可以用来有效更改 MySQL 中数据库名称的另一个选项是使用 dbForge Studio for MySQL 工具的模式和数据比较功能。

这个过程背后的逻辑是我们首先需要创建一个新的 MySQL 数据库。之后,我们可以使用模式和数据比较功能将旧数据库的结构和数据与新创建的数据库进行比较和同步。

  1. 在数据库菜单上,选择新建数据库。

image.png

  1. 输入数据库名称并点击应用更改。

image.png

  1. 在比较菜单上,单击新建架构比较。

image.png

  1. 指定要比较的数据库的名称。选择旧数据库作为Source,选择新创建的数据库作为Target。单击“比较”以启动模式比较。

image.png

  1. 结果,由于我们新创建的数据库是空的,您可以看到仅存在于源数据库中的对象。单击绿色箭头开始模式同步过程。

image.png

  1. 在架构同步向导中,选择 直接针对目标数据库执行脚本,然后单击同步。

image.png

  1. 刷新schema对比结果,会发现两个数据库的schema完全一致。

image.png

  1. 同步模式后,我们还需要同步数据。与前面的步骤类似,单击“比较”菜单上的“新建数据比较”。在打开的数据比较向导中,设置源和目标进行比较。

image.png

  1. 单击比较以启动数据比较过程。分析差异并单击绿色箭头以同步数据。

image.png

  1. 在数据同步窗口中,选择 直接针对目标数据库执行脚本并点击同步。

image.png

  1. 您现在拥有相同的 SQL 数据库,但名称不同。您现在可以删除具有过时名称的数据库。

image.png

使用 dbForge Studio for MySQL 复制数据库方法

可能,更改 MySQL 数据库名称的最简单和最快的方法是应用复制数据库工具,该工具是 dbForge Studio for MySQL 的一部分。

  1. 在数据库菜单上,选择复制数据库。

image.png

  1. 在向导中,在Source和Target 中指定服务器名称。从源列中选择要复制的数据库。然后,选择一个目标数据库。请注意,源列中的名称会复制到目标列中。您可以在Target 中为数据库指定一个新名称,从而重命名副本。选中包含数据复选框以复制 MySQL 数据库及其数据。单击绿色箭头开始复制。

image.png

数据库复制完成后,您将在“数据库浏览器”窗口中看到一个新数据库。您现在可以删除重复的数据库。

如您所见,在 dbForge Studio for MySQL 中重命名数据库的过程没有任何困难,因为它是通过 GUI 工具的直观界面完成的。您可以从三个选项中进行选择,根据您的目标和项目要求更改 MySQL 数据库的名称。

除此之外,我们不得不提到 MySQL Studio 提供了广泛的重构功能,可以帮助您重命名列、表和视图,同时保持数据库的完整性.

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论