如何重命名 MySQL 数据库?
MySQL 在线手册中曾说过 RENAME DATABASE 命令(此文档页面已被 Oracle 删除了一段时间):
该语句是在 MySQL 5.1.7 中添加的,但被发现是危险的,并在 MySQL 5.1.23 中删除。
那么,如何进行呢?理由:我们从项目的代号开始,现在希望数据库名称能够反映项目的明确名称。
ale*_*eit 72
来自Ilan Hazan 的这篇博文:
在 MySQL 中,不支持数据库重命名。要重命名 MySQL 数据库,您可以执行以下操作之一:
创建新数据库并将旧数据库中的所有表重命名为新数据库:
CREATE database new_db_name;
RENAME TABLE db_name.table1 TO new_db_name.table1, db_name.table2 TO new_db_name.table2;
DROP database db_name;
Run Code Online (Sandbox Code Playgroud)
在 Linux shell 中,使用 mysqldump 备份旧数据库,然后使用 MySQL 实用程序以新名称恢复转储的数据库。最后,使用 drop database 命令删除旧数据库。对于大型数据库,此选项可能表现不佳。
mysqldump -uxxxx -pxxxx -h xxxx db_name > db_name_dump.sql
mysql -uxxxx -pxxxx -h xxxx -e "CREATE DATABASE new_db_name"
mysql -uxxxx -pxxxx -h xxxx new_db_name < db_name_dump.sql
mysql -uxxxx -pxxxx -h xxxx -e "DROP DATABASE db_name"
Run Code Online (Sandbox Code Playgroud)
编写一个简单的 Linux 脚本(我最喜欢的解决方案)
mysqldump -uxxxx -pxxxx -h xxxx db_name > db_name_dump.sql
mysql -uxxxx -pxxxx -h xxxx -e "CREATE DATABASE new_db_name"
mysql -uxxxx -pxxxx -h xxxx new_db_name < db_name_dump.sql
mysql -uxxxx -pxxxx -h xxxx -e "DROP DATABASE db_name"
Run Code Online (Sandbox Code Playgroud)
如果你所有的表都是 MyISAM,你可以重命名旧的数据库文件夹名称:
小智 13
MySQL 有点糟透了。唯一可靠的解决方案是使用phpMyAdmin
.
Login
--> click Scheme
--> click Operations
--> 查找Rename database to:
--> 写NewName
> click Go
.
就如此容易。所有权限都被继承。
我找到了一个非常简单的解决方案:关闭MySQL,重命名数据库目录并重新启动。就这样!
如果您有引用旧名称的 SQL 代码或数据,这有点危险。然后,您还需要在重新启动应用程序之前对其进行更改。但我不需要这样做,而是 YMV。
谷歌搜索给出了以下两个提示:
http://www.delphifaq.com/faq/databases/mysql/f574.shtml
我倾向于创建一个新数据库,然后将旧数据库中的表转储到 .sql 文件(使用 mysqldump)中,编辑该文件,执行某种操作s/old_database/new_database/g
,然后将其重新导入到新数据库中。
可能不是最好的方法,但它确实有效。
归档时间: |
|
查看次数: |
166861 次 |
最近记录: |