É possível duplicar um banco de dados MySQL inteiro em um servidor Linux?
Eu sei que posso usar a exportação e importação, mas o banco de dados original é> 25 MB, então não é o ideal.
É possível usar o mysqldump ou duplicar diretamente os arquivos do banco de dados?
--routines
como uma opção para este caso.~/.bash_history
arquivo após executá-la. Ou você também pode produzir o resultado do primeiro comando em um arquivo temporário e executar o seguinte depois dele (que solicitará a senha)mysql -p -u admin duplicatedb < temporaryfile.sql
.Para servidor remoto
Para o servidor local
fonte
Às vezes, faço um mysqldump e canalizo a saída para outro comando mysql para importá-lo para um banco de dados diferente.
fonte
Crie um arquivo mysqldump no sistema que possui os dados e use o pipe para fornecer este arquivo mysqldump como uma entrada para o novo sistema. O novo sistema pode ser conectado usando o comando ssh.
sem espaço entre -p [senha]
fonte
Aqui está um arquivo Windows Bat que escrevi que combina as sugestões de Vincent e Pauls. Ele solicita ao usuário os nomes de origem e destino.
Basta modificar as variáveis na parte superior para definir os caminhos adequados para seus executáveis / portas de banco de dados.
Saída de amostra:
fonte
Isso não funcionará para InnoDB. Use esta solução alternativa apenas se estiver tentando copiar bancos de dados MyISAM.
Se bloquear as tabelas durante o backup e, possivelmente, pausar o MySQL durante a importação do banco de dados for aceitável, mysqlhotcopy pode funcionar mais rápido.
Por exemplo
Cópia de segurança:
Restaurar:
mysqlhotcopy também pode transferir arquivos por SSH (scp) e, possivelmente, direto para o diretório de banco de dados duplicado.
Por exemplo
fonte
Fazendo uma cópia de um banco de dados
fonte
Isso funcionou para mim com prompt de comando, de OUTSIDE mysql shell:
Isso me parece a melhor maneira. Se compactar "dump.sql", você pode armazená-lo simplesmente como um backup compactado. Legal! Para um banco de dados de 1 GB com tabelas Innodb, cerca de um minuto para criar "dump.sql" e cerca de três minutos para despejar dados no novo DB db2.
Copiar diretamente o diretório db (mysql / data / db1) não funcionou para mim, eu acho que por causa das tabelas InnoDB.
fonte
Era uma vez no MySQL você poderia simplesmente copiar todos os arquivos da tabela para outro diretório na árvore mysql
mysql cli - criar banco de dados db2
linux cli - cp db1 db2
fonte