MySQL手册中有介绍。
通常我只是转储数据库并用一个新名称重新导入它。这不是非常大的数据库的一个选项。重命名数据库| SCHEMA} db_name TO new_db_name做坏事,只存在于少数版本中,总的来说是个坏主意。
这需要与InnoDB一起工作,InnoDB存储的东西与MyISAM非常不同。
MySQL手册中有介绍。
通常我只是转储数据库并用一个新名称重新导入它。这不是非常大的数据库的一个选项。重命名数据库| SCHEMA} db_name TO new_db_name做坏事,只存在于少数版本中,总的来说是个坏主意。
这需要与InnoDB一起工作,InnoDB存储的东西与MyISAM非常不同。
当前回答
在MySQL管理员中执行以下操作:
在Catalogs下,创建一个新的数据库模式。 转到备份并创建的备份 旧的模式。 执行备份。 转到恢复并打开文件 在步骤3中创建。 在目标下选择“另一个模式” 模式并选择新的数据库 模式。 开始恢复。 验证新模式,如果看起来 很好,删除旧的。
其他回答
当您在PHPMyAdmin中重命名数据库时,它会创建一个转储,然后删除并使用新名称重新创建数据库。
在从包含多个数据库的转储文件开始的情况下,您可以对转储执行sed:
sed -i -- "s|old_name_database1|new_name_database1|g" my_dump.sql
sed -i -- "s|old_name_database2|new_name_database2|g" my_dump.sql
...
然后导入您的转储。只要确保没有名称冲突即可。
如果你更喜欢GUI工具,并且碰巧安装了MySQL Workbench,你可以使用内置的迁移向导
我能给出的最快和最简单的解决办法是……在MySql Workbench中右键单击您的模式->单击创建模式->输入该模式的名称。
删除旧名称的旧模式。
你已经准备好摇滚....
注意:仅用于本地目的。不要尝试生产数据库表。创建了模式,但其中没有数据。所以要小心。
我认为这个解决方案更简单,是一些开发人员提出的。phpMyAdmin对此有一个操作。
从phpMyAdmin中选择要选择的数据库。在选项卡中有一个叫做Operations,转到rename部分。这是所有。
正如许多人建议的那样,它使用新名称创建一个新数据库,将旧数据库的所有表转储到新数据库中,并删除旧数据库。
更新2022-09-22:MySQL 8.0+增加了一个更简单的解决方案:
不知道从什么时候开始添加RENAME TO关键字,但肯定更简单。不过在尝试之前,我会先把桌子备份一下,尤其是如果你的桌子很大的话。无论如何,它可以实现如下:
ALTER TABLE `schema_name`.`table_name`
RENAME TO `schema_name`.`new_table_name` ;
为了便于阅读,我把它分成了两行,但也可以写成单行,如下:
ALTER TABLE `schema_name`.`table_name` RENAME TO `schema_name`.`new_table_name` ;