Como renomear um banco de dados MySQL?
O manual online do MySQL falou sobre o comando RENAME DATABASE (esta página de documentação foi removida pela Oracle há algum tempo):
Esta instrução foi adicionada no MySQL 5.1.7, mas foi considerada perigosa e foi removida no MySQL 5.1.23.
Então, como proceder? A justificativa: começamos com um codinome para o projeto e queremos que o nome do banco de dados agora reflita o nome definitivo do projeto.
A partir desta 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:
No shell do Linux, use mysqldump para fazer backup do banco de dados antigo e, em seguida, restaure o banco de dados despejado com 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.
Escreva um script Linux simples (minha solução favorita)
Se todas as suas tabelas forem MyISAM, você pode renomear o antigo nome da pasta do banco de dados:
O MySQL é meio ruim para isso. A única solução sólida e confiável é usar
phpMyAdmin
.Login
--> clickScheme
--> clickOperations
--> localizarRename database to:
--> escreverNewName
> clickGo
.Tão simples como isso. Todas as permissões são transferidas.
Encontrei uma solução muito simples: desligue o MySQL, renomeie o diretório do banco de dados e reinicie. Isso é tudo!
É um pouco perigoso se você tiver código SQL ou dados referentes ao nome antigo. Então você precisa mudar isso também antes de reiniciar o aplicativo. Mas eu não precisava fazer isso, mas YMV.
A pesquisa no Google fornece algumas dicas como estas duas:
https://stackoverflow.com/questions/67093/how-do-i-quickly-rename-a-mysql-database-change-schema-name
http://www.delphifaq.com/faq/databases/mysql/f574.shtml
Eu costumo criar um novo banco de dados e, em seguida, despejar as tabelas do antigo, em um arquivo .sql (com mysqldump), editar o arquivo, fazer algum tipo de
s/old_database/new_database/g
e reimportá-lo para o novo banco de dados.Provavelmente não é a melhor maneira de fazer isso, mas funciona.
Se você tiver a chance de usar uma ferramenta de gerenciamento MySQL (por exemplo, phpMyAdmin), poderá renomeá-la facilmente, pois eles criam a consulta para você.
No phpMyAdmin eles também criam cada tabela e inserem os dados por "INSERT INTO... SELECT * FROM...". Então, encadeando, eles copiam os dados.
Se você não puder fazer isso, eu recomendaria fazer um dump e reimportar o sql-File para um novo banco de dados.
Boa sorte!
Abraços, Ben.
Eu usei o seguinte método para renomear o banco de dados
faça backup do arquivo usando mysqldump ou qualquer ferramenta de banco de dados, por exemplo, heidiSQL, administrador mysql etc
Abra o arquivo de backup (por exemplo, backupfile.sql) em algum editor de texto.
Pesquise e substitua o nome do banco de dados e salve o arquivo.
Restaurar o arquivo sql editado