如何在不删除或移动mysql中的表的情况下重命名数据库? [复制]

Posted

技术标签:

【中文标题】如何在不删除或移动mysql中的表的情况下重命名数据库? [复制]【英文标题】:How to rename database without deleting or moving tables in mysql? [duplicate] 【发布时间】:2011-04-11 12:35:55 【问题描述】:

可能重复:How do I quickly rename a mysql database (change schema name)?

嗨, 请帮我重命名mysql中的数据库名称

【问题讨论】:

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

你不应该使用rename database,因为它会导致数据丢失http://dev.mysql.com/doc/refman/5.1/en/rename-database.html

改为使用alter database语法http://dev.mysql.com/doc/refman/5.1/en/alter-database.html

【讨论】:

Alter 不能更改数据库的名称。它只能升级编码(如果可能的话)。 mysqldump 命令是你最好的选择,如果你想这样做..【参考方案2】:

您可以选择以下任何一种方式来重命名 MySQL 中的数据库。

如果您有权访问 MySQL 存储其数据库的目录。根据默认的 MySQL 安装,这通常位于 MySQL 安装目录下的数据目录中。在数据目录下找到所需数据库的名称并根据需要重命名。注意:您必须在重命名数据库之前停止 MySQL Server,并在此操作后重新启动它。在这种情况下,您还可以在重命名的数据库上再次授予权限。这仅适用于 MyISAM 表。如果您有其他存储引擎的表,请使用下面描述的方法。

另一种似乎最安全的方法是使用 mysqldump 实用程序备份旧数据库。创建一个具有所需名称的新数据库,然后使用 mysql 实用程序恢复此数据库下的转储数据库。最后,使用 DROP DATABASE old_database_name;命令摆脱旧数据库。 这是最安全的方法。

【讨论】:

以上是关于如何在不删除或移动mysql中的表的情况下重命名数据库? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何在不破坏文件的情况下重命名xcode项目中的文件夹名称

在不停机的情况下重命名现有列

如何在不破坏 Subversion 历史的情况下重命名 Java 包?

在不破坏现有迁移的情况下重命名 Django 模型

我们如何在不丢失数据的情况下重定向到相同的视图

如何在不丢失当前页面的情况下重绘数据表