MySQL: Como Importar Banco de Dados grande via SSH

Publicado em 04/07/2016 às 16:31

Recentemente estava tentando importar/subir um Banco de Dados MySQL bem grande da minha máquina para o servidor.
Uso o PHPMyAdmin como gerenciador de dados, é uma excelente ferramenta, mas não permite que bases muito grandes de dados sejam importadas. O que fazer então? Calma, para tudo há uma solução!
Bom, “perdi” preciosas horas tentando resolver esse enigma – e achei várias maneiras diferentes de resolvê-lo – e vou compartilhar a solução mais rápida e eficaz que encontrei.

1º Verificar se a hospedagem disponibiliza o acesso via SSH

A maioria das hospedagens disponibiliza o acesso via SSH, não se preocupe, mas se não estiver em seu plano, sugiro que pesquise por BigDump (outro meio de subir bancos grandes, um meio tão eficaz quanto subir via SSH, porém não tão ágil);

2º Cliente SSH

Se sua plataforma for Mac OS X ou Linux, basta usar o terminal, se for Windows você precisa baixar um programa auxiliar – indico o Git Bash ou o Putty;
Vou usar o Git Bash, preferência pessoal. Clique aqui para fazer o download.

3º Subir o arquivo da máquina para o servidor

Agora vá para a pasta que está o arquivo .sql que deseja subir.
Primeiro subiremos para os arquivos do servidor e depois subiremos para o banco.
No local em que seu .sql está, clique com o botão direito e clique em Git Bash Here.
No exemplo abaixo, meu arquivo bigdata.sql.zip está no Desktop:

git-bash-here-mirago

Uma tela preta irá abrir, basta digitar o comando abaixo para subir o arquivo:

scp <nomedoarquivo> <usuário>@<IP_ou_Hostname>:<Destino>

O nome do arquivo é do arquivo que está em seu pc e você quer subir – parece meio óbvio, mas algumas pessoas ficam com dúvida;
Usuário é o usuário que você usa para acessar o ftp;
O IP é o IP, né? Rs, ou você pode usar o host do ftp também, tanto faz.
E o destino é para onde vai o arquivo, você pode deixar na pasta raiz mesmo, na public, ou em uma pasta dentro da public, não importa, porque depois o arquivo será apagado.
Veja abaixo um exemplo feito:

subir-arquivo-ssh

Coloque a senha e pronto, o arquivo subiu!
Simples, rápido, ágil.

4º Subir o arquivo do servidor para o banco

Agora precisamos entrar no servidor via SSH para descompactar o zip e subir o arquivo para o banco.
Para conectar com o servidor digite o comando:

 

ssh <usuário>@<IP_ou_Hostname>

enter

Password: <suasenha>

 

Pronto, você está conectado!
Digite o comando

ls

Esse comando lista as pastas e arquivos encontrados.
Se você colocou seu arquivo na public_html, precisamos entrar nessa pasta.
Digite o comando

cd public_html

Digite o comando

ls

Veja que o arquivo que subiu está aí.
Se o seu arquivo estiver zipado, descompacte-o.
Use o comando abaixo (em negrito) de acordo com a extensão do seu arquivo. Se for:

.zip

unzip nomedoarquivo.zip

.tar

tar -xvf nomedoarquivo.tar

.gz

gzip -d nomedoarquivo.gz

.tar.gz

gzip -d nomedoarquivo.tar.gz

enter e depois

tar -xvf file.tar

.tgz

tar -xvzf nomedoarquivo.tgz

 

Como no meu exemplo estou usando um arquivo .zip, digitarei: unzip bigdata.sql.zip
Agora o arquivo está pronto para ser importado. Digite o comando:

mysql -h <IP_ou_Host_do_Banco_de_Dados> -u <usuáriodobancodedados> -p <nomedobanco> < <nomedoarquivo.sql>

enter

Password: <senha_Banco_de_Dados>

 

Pronto! Agora o banco já está alimentado e o arquivo que subimos já pode ser deletado.