Eu trabalhei com um linux pro anos atrás, que fez esse truque bacana. Ele poderia fazer um mysqldump, mas redirecionar a saída para uma conexão scp / ssh, em vez de gravar no disco . Utilizamos esse silêncio um pouco onde eu costumava trabalhar, mas não me lembro mais como fazer isso.
Agora, estou enfrentando o problema em que meu disco rígido no servidor está nas últimas pernas e, para fins intensivos, é montado permanentemente como somente leitura.
Eu esperava utilizar esse truque da linha de comando para ainda poder fazer backup dos meus bancos de dados em um novo servidor, pois gravar o dump no disco local e transferi-lo está claramente fora de questão.
Esse truque é realmente possível? Em caso afirmativo, qual é a sintaxe?
Desde então, percebi que devido ao problema de sistema de arquivos somente leitura, tenho experiência que nem consigo conectar ao mysql para fazer o despejo. Mas seu feedback foi excelente e, esperamos, útil para outra pessoa no futuro
Respostas:
mysqldump nome_bd | ssh [email protected] "mysql -D dbname"
isso deve funcionar :-)
Configure as chaves entre os sistemas também para que você possa fazer isso sem precisar de um login / passe :-)
fonte
fonte
mysqldump -p <dbname> | ssh <user>@<ip_address> "cat > <filename>.sql"
exatamente o que eu precisava.Gosto da resposta de @ GlennKelley, mas gostaria de salientar o seguinte:
Tínhamos um banco de dados com 450 GB, mas apenas 500 GB provisionados no host. Não foi possível exportar localmente, por isso exportamos remotamente. Validamos a saída e houve centenas de instâncias em que a saída estava corrompida devido a problemas de buffer de canal.
A melhor solução aqui é, no host de destino em que você deseja que seu dump termine, execute,
mysqldump
mas use a-h
opção de host. Aponte o host para o servidor MySQL e exporte os dados usando a>
.fonte