我正在使用MySQL 5.0.
我创建了一个名为accounts
的数据库,但现在我想将数据库名称更改为FinanceAccounts
。
如何更改MySQL 5.0
中的数据库名称?
答案 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)
最好的方法可能是将数据库中的每个表重命名为新名称。例如:
更新:这里有两个步骤
创建一个新的空白数据库,因为您想要说“新帐户”
CREATE DATABASE newaccounts;
逐个迁移每个表
RENAME TABLE accounts.tablename to newaccounts.tablename;
请参阅 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)