如何重命名MySQL中的数据库而不丢失数据?

时间:2014-03-13 08:59:42

标签: mysql sql database

我正在尝试通过以下查询重命名我的数据库:

RENAME DATABASE my_db TO newDB;

但它显示以下错误响应:

Error Code: 1064. You have an error in your SQL syntax; check the manual that
 corresponds to your MySQL server version for the right syntax to use near 'DATABASE
 activation_server_db TO activationserver' at line 1

请帮我找到我错的地方?

4 个答案:

答案 0 :(得分:2)

使用这几个简单的命令

mysqldump -u username -p -v olddatabase > olddbdump.sql
mysqladmin -u username -p create newdatabase
mysql -u username -p newdatabase < olddbdump.sql

或对于InnoDB,以下似乎有效:创建新的空数据库,然后依次将每个表重命名为新数据库:

RENAME TABLE old_db.table TO new_db.table;

之后你需要调整权限。

答案 1 :(得分:1)

我遵循以下简单步骤:

  1. 创建新数据库
  2. 备份旧数据库
  3. 在新数据库下恢复旧数据库

答案 2 :(得分:1)

您可以使用 mysqldump

using mysqldump

mysqldump [OPTIONS] --database oldSchema > oldSchema.sql
mysql new_schema < oldSchema.sql

答案 3 :(得分:0)

您需要创建数据库的转储,然后使用该转储创建一个具有不同名称的新数据库。

如果它在线,您需要采取行动以避免数据丢失