Especificamente para sua pergunta sobre o uso de um nome diferente durante a restauração: com mysqldump você pode fazer mysqldump databasename
ou mysqldump --databases databasename
. O primeiro não coloca uma declaração create db
, o último faz.
Quando você tiver feito o dump com a instrução anterior, basta criar manualmente um novo db e carregar o dump com algo como mysql newdbname < dump.sql
. No caso deste último, você pode simplesmente abrir o arquivo de despejo e alterar o nome.
Um sidenote, eu acho que é um projeto ruim na parte mysqldump
do MySQL ter essa diferença, BTW. Se você fizer backup sem a instrução --databases
, será necessário primeiro criar um banco de dados para poder restaurar. E esse banco de dados pode ter um charset ou agrupamento diferente do que o banco de dados tinha originalmente. Na minha opinião, se você despejar um banco de dados, ele deve conter todos os dados e metadados. O mesmo vale para ter que fornecer --routines
e --events
. Eu posso imaginar opções como --no-routines
pode ser útil, mas por padrão não despejar rotinas? Hmm.