Tem a necessidade de subir um arquivo .SQL de um banco de dados MySQL, mas este é muito grande (usualmente acima de 30GB) e sempre ocorre algum erro durante o processo? Tem acesso ao servidor Linux por linha de comando? Caso positivo, siga este tutorial.
Importar arquivos muito grandes de banco de dados pode ser um problema. Muitas vezes o sistema possui poucos recursos, ou o mysql se embanana todo e ocorre um crash devido ao tamanho do arquivo.
Navegue até a pasta do backupcd /home/backups
Crie uma pasta para guardar os arquivos divididosmkdir /home/backups/BD_dividido
Execute o comando para dividir o arquivo de dump em arquivos menoressplit -n 300 arquivo_muito_grande_backup.sql BD_dividido/bd_
Observação: O prefixo “-n 300” do comando acima é a opção que cada arquivo dividido tenha apenas 300 linhas. O arquivo a ser dividido chama arquivo_muito_grande_backup.sql e os arquivos menores serão salvos na pasta BD_dividido e vão ter nomes sequenciais do tipo: bd_aa, bd_ab, etc.
Primeiro vamos acessar a pasta onde os arquivos foram salvoscd /home/backups/BD_dividido
Agora, vamos enviar a sequência de arquivos para o MySQL:cat bd_* | mysql -u root -p nome_do_banco
Observação: A sintaxe “cat bd_*” é para enviar os arquivos sequenciais do banco. O prefixo “-u root” é referente ao nome de usuário root. O prefixo “-p” informa que o usuário usa uma senha e a mesma vai ser solicitada ao digitar o comando. Caso o arquivo de dump já tenha as informações de criação do banco, a informação “nome_do_banco pode ser suprimida, caso contrário, informe para qual banco os dados devem ser inseridos.
Não há nenhum output direto do comando acima, pois os dados são enviados diretamente ao mysql. Porém caso aconteça um erro, o mesmo será informado e a importação será interrompida.
Como verificar o desempenho e o fluxo de dados?
mysql -u root -p
show processlist;
du -s /var/lib/mysql
fonte:https://viniciuspaes.com/linux/tutorial-mysql-como-importar-banco-dados-muito-grande/