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 declaraçã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 lógica: começamos com um nome de código para o projeto e queremos que o nome do banco de dados agora reflita o nome definitivo do projeto.
Respostas:
A partir desta postagem de 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 um dos seguintes:
Crie um novo banco de dados e renomeie todas as tabelas no banco de dados antigo para estar no novo banco de dados:
No shell do Linux, use o 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 bancos de dados grandes.
Escreva um script Linux simples (minha solução favorita)
Se todas as suas tabelas forem MyISAM, você poderá renomear o nome antigo da pasta do banco de dados:
fonte
SELECT CONCAT('olddb.', TABLE_NAME, ' TO newdb.', TABLE_NAME, ',') FROM INFORMATION_SCHEMA.TABLES WHERE table_schema='olddb';
;O MySQL meio que é péssimo por isso. A única solução sólida e confiável é usar
phpMyAdmin
.Login
-> clickScheme
-> clickOperations
-> encontreRename database to:
-> escrevaNewName
> clickGo
.Tão simples como isso. Todas as permissões são transferidas.
fonte
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 alterar isso também antes de reiniciar o aplicativo. Mas eu não precisava fazer isso, mas YMV.
O Google fornece algumas dicas como essas 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
fonte
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 fazê-lo, mas funciona.
fonte
Se você tiver chance de usar uma Ferramenta de Gerenciamento MySQL (por exemplo, phpMyAdmin), poderá renomeá-la facilmente, pois elas criarão a consulta para você.
No phpMyAdmin, eles também criam cada tabela e inserem os dados "INSERT INTO ... SELECT * FROM ...". Então, encadeando eles copiam os dados.
Se você não puder fazer isso, recomendo fazer um despejo e reimportar o arquivo sql para um novo banco de dados.
Boa sorte!
Atenciosamente, Ben.
fonte
Eu usei o seguinte método para renomear o banco de dados
faça backup do arquivo usando o mysqldump ou qualquer ferramenta de banco de dados, por exemplo, heidiSQL, administrador do 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
fonte