如何使用MySQL更改数据库名称?

时间:2013-11-06 07:08:29

标签: mysql

如何更改数据库的数据库名称?

我尝试使用rename database命令,但在有关它的文档中,据说使用它是危险的。那么我应该怎么做才能重命名我的数据库名称?

例如,如果我想将数据库重命名为此。

database1 -> database2?

12 个答案:

答案 0 :(得分:24)

按照以下步骤操作:

shell> mysqldump -hlocalhost -uroot -p  database1  > dump.sql

mysql> CREATE DATABASE database2;

shell> mysql -hlocalhost -uroot -p database2 < dump.sql

如果你想删除database1,否则就离开它。

mysql> DROP DATABASE database1;

注意: shell&gt;表示命令提示符和mysql&gt;表示mysql提示符。

答案 1 :(得分:16)

我不认为这是可能的。

您可以使用mysqldump转储数据,然后使用新名称创建架构,然后将数据转储到新数据库中。

答案 2 :(得分:13)

不幸的是,MySQL没有明确支持(除了再次转储和重新加载数据库)。

来自http://dev.mysql.com/doc/refman/5.1/en/rename-database.html

  

13.1.32。 RENAME DATABASE语法

     

重播{数据库| SCHEMA} db_name TO new_db_name;

     

此声明已添加到MySQL 5.1.7中,但发现它很危险,并已在MySQL 5.1.23中删除。 ...使用此语句可能会导致数据库内容丢失,这就是删除它的原因。不要在存在它的早期版本中使用RENAME DATABASE。

答案 3 :(得分:4)

您可以使用MySQL界面更改数据库名称。

转到http://www.hostname.com/phpmyadmin

转到要重命名的数据库。接下来,转到操作选项卡。在那里,您将找到重命名数据库的输入字段。

答案 4 :(得分:3)

“只要两个数据库位于同一文件系统上,就可以使用RENAME TABLE将表从一个数据库移动到另一个数据库”

-- ensure the char set and collate match the existing database.
SHOW VARIABLES LIKE 'character_set_database';
SHOW VARIABLES LIKE 'collation_database';


CREATE DATABASE `database2` DEFAULT CHARACTER SET = `utf8` DEFAULT COLLATE = `utf8_general_ci`;
RENAME TABLE `database1`.`table1` TO `database2`.`table1`;
RENAME TABLE `database1`.`table2` TO `database2`.`table2`;
RENAME TABLE `database1`.`table3` TO `database2`.`table3`;

http://dev.mysql.com/doc/refman/5.7/en/rename-table.html

答案 5 :(得分:0)

重命名数据库或获取数据库映像的另一种方法是使用数据库选项卡中的逆向工程选项。它将为数据库创建一个ER图表。在那里重命名架构。

之后,转到文件菜单,然后导出并转发工程师数据库。

然后您可以导入数据库。

答案 6 :(得分:0)

经过多次恶化后,这就是我发现的工作&#34;简单地说#34;。 首先,我正在使用MYSQL Workbench并且导入将无法正常工作,因为导入转储文件将始终恢复为原始模式名称。 我花了几个小时尝试每件事都没有用,都是因为拼写错误。 我通过在笔记本中打开一个.sql转储文件并手工编辑模式名称的拼写错误解决了这个问题,注意重命名所有实例模式名称在开头有三个,保存文件然后导入。这对我来说非常有用,并希望它能帮助其他人寻找更改数据库名称/模式名​​称的简单答案。 我发现的另一个提示是正确的,当程序不能执行时,应该转到&#34; source&#34;字面上找到源代码。   希望这有助于某人

低代表,所以他们不会让我评论前/后答案(它不断改变排名或位置),所以我在这里添加。只要服务器表中没有数据,逆向工程就可以正常工作。如果数据存在并且您尝试在更改名称后更新服务器,它将导致错误或仅创建没有数据的新数据库/模式,我知道我尝试了十次无济于事。 上述工作简单并且避免了令人头疼的问题,因为如果有任何更改或更改表名或创建数据,可以查看SQL代码以查找其他错误。 .sql文件只是一个已编译的SQL代码,因此理论上可以通过PHP或数据库管理工具的脚本控制台复制和添加它。

答案 7 :(得分:0)

我同意上述答案和提示,但有一种方法可以使用phpmyadmin

更改数据库名称

重命名数据库     从cPanel,单击phpMyAdmin。 (它应该在新标签中打开。)     在左侧列中单击要重命名的数据库。     单击“操作”选项卡。     如果显示“将数据库重命名为:”,请输入新的数据库名称。     单击“Go”按钮。     当它要求您要创建新数据库并删除旧数据库时,请单击“确定”继续。 (这是确保正确拼写新名称的好时机。)     操作完成后,在系统询问您是否要重新加载数据库时单击“确定”。

这是视频教程:

http://support.hostgator.com/articles/specialized-help/technical/phpmyadmin/how-to-rename-a-database-in-phpmyadmin

答案 8 :(得分:0)

您可以使用以下命令

alter database Testing modify name = LearningSQL;

旧数据库名称=测试, 新数据库名称= LearningSQL

答案 9 :(得分:0)

转到数据目录并尝试:

mv database1 database2 

它适用于900 MB数据库大小。

答案 10 :(得分:0)

InnoDB支持RENAME TABLE语句将表从一个数据库移动到另一个数据库。为了以编程方式使用它并使用大量表重命名数据库,我编写了一些过程来完成这项工作。 您可以在这里查看-SQL script @Gist

要使用它,只需调用 renameDatabase 过程。

CALL renameDatabase('old_name', 'new_name');

已经在MariaDB上进行了测试,并且可以理想地在使用InnoDB事务引擎的所有RDBMS上运行。

答案 11 :(得分:-1)

尝试:

RENAME database1 TO database2;