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.