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

Jer*_*lle 19 mysql

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

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

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

database1 -> database2?
Run Code Online (Sandbox Code Playgroud)

Nan*_*mar 27

按照下面的步骤:

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

mysql> CREATE DATABASE database2;

shell> mysql -hlocalhost -uroot -p database2 < dump.sql
Run Code Online (Sandbox Code Playgroud)

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

mysql> DROP DATABASE database1;
Run Code Online (Sandbox Code Playgroud)

注意:shell>表示命令提示符和mysql>表示mysql提示符.

  • 感谢您提供详细的解决方案,而不是说为什么无法完成 (2认同)

Kay*_*son 17

我不认为这是可能的.

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


mvp*_*mvp 15

不幸的是,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.


txy*_*oji 6

“只要两个数据库位于同一文件系统上,就可以使用 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`;
Run Code Online (Sandbox Code Playgroud)

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

  • 确实如此,但最终结果是一样的。您的所有数据最终都会存储在新的数据库中,您无需重新加载它。请注意,新旧数据库需要位于同一逻辑磁盘上。 (2认同)

小智 5

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

访问http://www.hostname.com/phpmyadmin

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