如何更改数据库的数据库名称?
我尝试使用rename database命令,但在有关它的文档中,据说使用它是危险的。那么我应该怎么做才能重命名我的数据库名称?
例如,如果我想将数据库重命名为此。
database1 -> database2?
答案 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`;
答案 5 :(得分:0)
答案 6 :(得分:0)
经过多次恶化后,这就是我发现的工作&#34;简单地说#34;。 首先,我正在使用MYSQL Workbench并且导入将无法正常工作,因为导入转储文件将始终恢复为原始模式名称。 我花了几个小时尝试每件事都没有用,都是因为拼写错误。 我通过在笔记本中打开一个.sql转储文件并手工编辑模式名称的拼写错误解决了这个问题,注意重命名所有实例模式名称在开头有三个,保存文件然后导入。这对我来说非常有用,并希望它能帮助其他人寻找更改数据库名称/模式名称的简单答案。 我发现的另一个提示是正确的,当程序不能执行时,应该转到&#34; source&#34;字面上找到源代码。 希望这有助于某人
低代表,所以他们不会让我评论前/后答案(它不断改变排名或位置),所以我在这里添加。只要服务器表中没有数据,逆向工程就可以正常工作。如果数据存在并且您尝试在更改名称后更新服务器,它将导致错误或仅创建没有数据的新数据库/模式,我知道我尝试了十次无济于事。 上述工作简单并且避免了令人头疼的问题,因为如果有任何更改或更改表名或创建数据,可以查看SQL代码以查找其他错误。 .sql文件只是一个已编译的SQL代码,因此理论上可以通过PHP或数据库管理工具的脚本控制台复制和添加它。
答案 7 :(得分:0)
我同意上述答案和提示,但有一种方法可以使用phpmyadmin
更改数据库名称重命名数据库 从cPanel,单击phpMyAdmin。 (它应该在新标签中打开。) 在左侧列中单击要重命名的数据库。 单击“操作”选项卡。 如果显示“将数据库重命名为:”,请输入新的数据库名称。 单击“Go”按钮。 当它要求您要创建新数据库并删除旧数据库时,请单击“确定”继续。 (这是确保正确拼写新名称的好时机。) 操作完成后,在系统询问您是否要重新加载数据库时单击“确定”。
这是视频教程:
答案 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;