我们如何在MySQL 5.0中重命名数据库名称

时间:2009-03-27 11:46:55

标签: mysql

我正在使用MySQL 5.0.

我创建了一个名为accounts的数据库,但现在我想将数据库名称更改为FinanceAccounts

如何更改MySQL 5.0中的数据库名称?

5 个答案:

答案 0 :(得分:21)

我认为只有一种方法(除了重命名MySQL数据库中的目录,InnoDB表也会失败):

  • 创建新数据库(使用新名称)
  • 转储旧数据库
  • 将转储数据导入新数据库
  • 删除旧数据库

创建新数据库:

mysql> CREATE DATABASE new_database;

创建旧数据库的转储:

mysqldump -u "your_username" -p --lock-tables old_database > old_database_dump.sql

将转储数据导入新数据库:

mysql -u "your username" -p new_database  < old_database_dump.sql

要删除旧数据库:

mysql> DROP DATABASE old_database;

请记住,您还需要删除对旧数据库的权限。有关详情,请参阅此处: Revoke all privileges for all users on a MySQL DB

MySQL 5.1.7到MySQL 5.1.22有一个RENAME {DATABASE | SCHEMA} db_name TO new_db_name;命令,但是这个命令在MySQL 5.1.23中被删除了,因为它太危险了。

答案 1 :(得分:17)

最好的方法可能是将数据库中的每个表重命名为新名称。例如:

更新:这里有两个步骤

  1. 创建一个新的空白数据库,因为您想要说“新帐户”

    CREATE DATABASE newaccounts;

  2. 逐个迁移每个表

    RENAME TABLE accounts.tablename to newaccounts.tablename;

  3. 请参阅 http://dev.mysql.com/doc/refman/5.0/en/rename-table.html 了解更多信息。

答案 2 :(得分:2)

MySQL有点糟透了。唯一可靠的解决方案是使用phpMyAdmin。

登录&gt;点击Scheme&gt;点击“操作”&gt;找到“将数据库重命名为:”&gt;写新名称&gt;点击“开始”。

就这么简单。所有权限都会被转移。

答案 3 :(得分:2)

在这里,我将mydb数据库重命名为电子商务,你按照这个步骤进行操作,但是我们在phpmyadmin中很容易

CREATE DATABASE `ecommerce` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

RENAME TABLE `mydb`.`Articles` TO `ecommerce`.`Articles` ;

RENAME TABLE `mydb`.`Categories` TO `ecommerce`.`Categories` ;

RENAME TABLE `mydb`.`Utilisateurs` TO `ecommerce`.`Utilisateurs` ;

ALTER TABLE `Articles` ADD CONSTRAINT fk_Articles_Categories FOREIGN KEY ( Categorie_id ) REFERENCES Categories( id ) ON DELETE NO ACTION ON UPDATE NO ACTION ;

DROP DATABASE `mydb` ;

答案 4 :(得分:0)

要重命名MySQL数据库名称,请执行以下步骤:

1) Click the database name 

2) Click at Operations from the top menu

3) Type new database name Under Rename database to:

Please check the screen shot