I am using MySQL 5.0.
I have created a database named accounts
, but now I want to change the database name to FinanceAccounts
.
The best way is probably to rename each of the tables inside the database to the new name. For example:
Update: There are two steps here
Create a new blank database as you want say "new accounts"
CREATE DATABASE newaccounts;
Migrate each table one-by-one
RENAME TABLE accounts.tablename TO newaccounts.tablename;
See http://dev.mysql.com/doc/refman/5.0/en/rename-table.html for more information.
To Rename MySQL Database name follow the following steps:
1) Click the database name
2) Click at Operations from the top menu
3) Type new database name Under Rename database to:
here , I rename mydb database to ecommerce, you follow this steps, but usin phpmyadmin is to easy
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` ;
I think there is only one way (besides renaming directory in the MySQL datadir which will fail for InnoDB tables):
To create the new DB:
mysql> CREATE DATABASE new_database;
To create the dump of the old DB:
mysqldump -u "your_username" -p --lock-tables old_database > old_database_dump.sql
To import dumped data into the new DB:
mysql -u "your username" -p new_database < old_database_dump.sql
To delete the old DB:
mysql> DROP DATABASE old_database;
Bear in mind that your permissions on the old DB will need to be deleted as well. See here for more info: Revoke all privileges for all users on a MySQL DB
MySQL 5.1.7 to MySQL 5.1.22 had a RENAME {DATABASE | SCHEMA} db_name TO new_db_name;
command but this one has been removed in MySQL 5.1.23 for being too dangerous.
MySQL kinda sucks for this. The only solid reliable solution is to use phpMyAdmin.
Login > click Scheme > click "Operations" > find "Rename database to:" > write NewName > click "Go."
As simple as that. All permissions are carried over.