De esta postagem no blog de Ilan Hazan:
No MySQL, não há suporte para renomeação de banco de dados. Para renomear um banco de dados MySQL, você pode fazer o seguinte:
-
Crie um novo banco de dados e renomeie todas as tabelas no banco de dados antigo para estarem no novo banco de dados:
CREATE database new_db_name; RENAME TABLE db_name.table1 TO new_db_name, db_name.table2 TO new_db_name; DROP database db_name;
-
No shell do Linux, use mysqldump para fazer backup do banco de dados antigo e, em seguida, restaure o banco de dados despejado sob um novo nome usando o utilitário MySQL. Por fim, use o comando drop database para descartar o banco de dados antigo. Esta opção pode ter um desempenho ruim para um banco de dados grande.
mysqldump -uxxxx -pxxxx -h xxxx db_name > db_name_dump.sql mysql -uxxxx -pxxxx -h xxxx -e "CREATE DATABASE new_db_name" mysql -uxxxx -pxxxx -h xxxx new_db_name < db_name_dump.sql mysql -uxxxx -pxxxx -h xxxx -e "DROP DATABASE db_name"
-
Escreva um script Linux simples (minha solução favorita)
#!/bin/bash mysqlconn="mysql -u xxxx -pxxxx -S /var/lib/mysql/mysql.sock -h localhost" olddb=xxxx newdb=xxxx #$mysqlconn -e "CREATE DATABASE $newdb" params=$($mysqlconn -N -e "SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE table_schema='$olddb'") for name in $params; do $mysqlconn -e "RENAME TABLE $olddb.$name to $newdb.$name"; done; #$mysqlconn -e "DROP DATABASE $olddb"
-
Se todas as suas tabelas forem MyISAM, você pode renomear o antigo nome da pasta do banco de dados:
- Encerre o servidor MySQL,
- Renomeie o nome da pasta do banco de dados para o novo nome,
- Inicie o servidor MySQL.