O phpMyAdmin resolve a maior parte das importações. Mas há um tamanho a partir do qual ele desiste: o ficheiro não passa no envio, ou passa e a importação pára a meio sem dizer nada. Não é avaria; são os limites de tempo e de tamanho que existem para proteger toda a gente.
Por SSH não há esse tecto. A importação corre directamente no servidor, sem navegador pelo meio, e um ficheiro de vários gigabytes entra sem drama.
Primeiro: a sua conta tem SSH?
Nem todos os planos têm shell ligada. Dá para saber em meio minuto:
| 1 |
Abra o cPanel e procure Terminal ou SSH Access. Se algum dos dois aparecer, tem. O Terminal é ainda melhor do que ter SSH em casa: corre no próprio navegador e não precisa de instalar nada.
|
|
| 2 |
Se não aparecer nenhum, tente ligar-se mesmo assim, a partir do seu computador, com ssh -p 2299 utilizador@servidor. A porta aqui é a 2299, e não a 22. Se for recusado, não insista: veja o ponto seguinte.
|
|
| 3 |
Peça-nos. Diga-nos para que é e ligamos, ou fazemos nós a importação. Se o que quer é só pôr a base lá dentro uma vez, pode ser mais rápido mandar-nos o ficheiro.
|
|
|
Repetir tentativas falhadas bloqueia-lhe o IP. O firewall do servidor conta as falhas de ligação, e ao fim de algumas tranca o endereço de onde vêm, o que lhe corta também o site e o e-mail. Se errar a palavra-passe duas vezes, pare e confirme os dados. Se já ficou trancado, veja como desbloquear o seu endereço de IP.
|
A importação, passo a passo
| 2 |
Ponha o ficheiro no servidor. Por SFTP na porta 2299, pelo gestor de ficheiros do cPanel, ou, se o ficheiro estiver na internet, com wget a partir da linha de comandos, que é muito mais rápido do que passar pelo seu computador.
|
|
| 3 |
Se estiver comprimido, não o descomprima primeiro. Dá para ler e importar ao mesmo tempo, o que poupa espaço em disco e tempo: gunzip < copia.sql.gz | mysql -u utilizador -p nomedabase .
|
|
| 4 |
Se estiver em texto simples, a linha é mysql -u utilizador -p nomedabase < copia.sql . Ele pede a palavra-passe e começa.
|
|
| 5 |
Espere em silêncio. Uma importação bem sucedida não escreve nada no ecrã: simplesmente acaba e devolve-lhe a linha de comandos. Se aparecer texto, é erro, e o erro diz a linha do ficheiro onde parou.
|
|
|
Não escreva a palavra-passe na linha de comandos. Use -p sozinho e deixe-o pedir. Colada ao -p, a palavra-passe fica guardada no histórico da shell e aparece a quem listar os processos do servidor naquele instante.
|
Importações longas, e ligações que caem
Numa base grande, a importação pode demorar muito. Se a sua ligação à internet oscilar, a sessão de SSH morre e leva a importação atrás dela, a meio, deixando a base num estado incompleto que é pior do que vazia.
A cura habitual noutros servidores é o screen ou o tmux. Aqui não existem nenhum dos dois. O que existe é o nohup, que faz o mesmo para este caso: lança o trabalho de maneira a que ele sobreviva à queda da sessão.
| Para |
A linha |
| Lançar e largar |
nohup bash -c "mysql -u utilizador -pSENHA base < copia.sql" > ~/import.log 2>&1 & |
| Ver como vai |
tail -f ~/import.log |
| Confirmar que acabou |
ps aux | grep mysql |
Repare que neste caso a palavra-passe tem mesmo de ir na linha, porque não há ninguém para a escrever depois. Mude-a a seguir, ou apague o histórico da shell.
E no sentido contrário: exportar
A mesma mecânica ao contrário, e é a maneira mais fiável de tirar uma cópia de uma base grande: mysqldump -u utilizador -p nomedabase | gzip > copia.sql.gz . O ficheiro fica na pasta onde estava quando correu o comando, e depois traz-se por SFTP.
|
Importar escreve por cima. Se a base já tinha tabelas com os mesmos nomes, o ficheiro substitui-as, e o que lá estava desaparece sem aviso nem confirmação. Exporte o que já lá está ANTES de importar por cima, ou faça a cópia da conta inteira: restaurar com o JetBackup.
|
Se depois da importação o site não abrir, quase de certeza os dados de ligação no ficheiro de configuração apontam para a base antiga: veja onde cada aplicação guarda os dados de ligação.
PRODUTO RECOMENDADO Servidor VPS com acesso root Recursos só seus, o sistema que escolher, reinstalação quando quiser. desde 720,00 MT/mês Ver planos |