如何在 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 中重命名模式的主要内容,如果未能解决你的问题,请参考以下文章