【问题标题】:How can we rename the database name in MySQL 5.0我们如何在 MySQL 5.0 中重命名数据库名称
【发布时间】:2010-10-15 22:10:08
【问题描述】:

我正在使用MySQL 5.0.

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

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

【问题讨论】:

标签: mysql


【解决方案1】:

我认为只有一种方法(除了重命名 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 中因为太危险而被删除了。

【讨论】:

    【解决方案2】:

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

    更新:这里有两个步骤

    1. 创建一个新的空白数据库,如您所说的“新帐户”

      创建数据库新帐户;

    2. 逐个迁移每个表

      将表accounts.tablename重命名为newaccounts.tablename;

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

    【讨论】:

    • 我们正在讨论重命名数据库...重命名表完全没有问题。
    • 这就是他所说的:重命名 TABLE database_name.table_name TO new_database_name.table_name
    • 没错——没有想到这种可能性。此方法可能会在该表上的打开事务或当前锁定方面产生一些问题。但无论如何,这是一个解决方案。对不起,我的第一条评论!
    • 来自 mysql 文档:只要两个数据库位于同一个文件系统上,您就可以使用 RENAME TABLE 将表从一个数据库移动到另一个数据库:RENAME TABLE current_db.tbl_name TO other_db.tbl_name; 专为重命名的数据库授予的任何特权表或视图不会迁移到新名称。它们必须手动更改。
    • 几乎可以立即运行,无论表的大小或索引数量等,都比使用 mysqldump 更快、更可靠。
    【解决方案3】:

    MySQL 在这方面有点糟糕。唯一可靠的解决方案是使用 phpMyAdmin。

    登录 > 点击 Scheme > 点击“操作” > 找到“Rename database to:” > 写 NewName > 点击“Go”。

    就这么简单。所有权限都被继承。

    【讨论】:

      【解决方案4】:

      这里,我将 mydb 数据库重命名为 ecommerce,你按照这个步骤操作,但是使用 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` ;
      

      【讨论】:

        【解决方案5】:

        要重命名 MySQL 数据库名称,请按照以下步骤操作:

        1) Click the database name 
        
        2) Click at Operations from the top menu
        
        3) Type new database name Under Rename database to:
        

        【讨论】:

          猜你喜欢
          • 2011-08-19
          • 2017-10-04
          • 2010-09-09
          • 2016-07-06
          • 1970-01-01
          • 2021-11-14
          • 1970-01-01
          • 2011-07-30
          • 2012-08-24
          相关资源
          最近更新 更多