Ir para o conteúdo
Ferramenta gratuita

Divisor de SQL: divida e compacte arquivos SQL

Seu arquivo SQL é grande demais para importar no phpMyAdmin? O SQL Splitter o compacta como .sql.gz ou o divide entre instruções completas em partes menores que 1,9 MB, por exemplo, community-db.sql com 98 KB em 20 KB como .sql.gz. Grátis, sem cadastro e sem upload: seu arquivo permanece no navegador.

Criado por Justin Schuessler

Em seu próprio VPS, você pode importar dumps grandes pelo console, sem o limite de upload do phpMyAdmin.

Seu arquivo permanece no seu navegador: ele não é enviado nem armazenado.

Exemplo de resultado

Como o SQL Splitter divide um dump

Primeiro, a ferramenta verifica se o arquivo compactado já está abaixo do seu limite. Caso contrário, divide o dump entre instruções completas e inclui o cabeçalho em cada parte. O exemplo usa um mysqldump pequeno com tamanho-alvo de 40 KB para gerar várias partes; os resultados para você dependem do seu arquivo.

Exemplo · Entrada: community-db.sql, 98 KB, 56 instruções, 2 tabelas, trigger, procedimento e view

Arquivo SQL
98 KB
Como .sql.gz
20 KB
4,9 vezes menor
Partes abaixo de 40 KB
3
Problemas de importação encontrados
9
DEFINER, CREATE DATABASE/USE, collation do MySQL 8
Partes na ordem de importação
community-db-part-001.sql     28 KB   17 Instruções  players, scorescommunity-db-part-002.sql     40 KB    3 Instruções  scorescommunity-db-part-003.sql     32 KB   18 Instruções  scores

Por que esta ferramenta

Um SQL Splitter cujas partes podem mesmo ser importadas

Muitos divisores cortam por linha ou megabyte e acabam separando triggers, procedimentos ou registros. Este lê o dump como o cliente mysql.

Primeiro compactar, depois dividir

Dumps SQL contêm muito texto repetido e, como .sql.gz, costumam ficar muito menores. O phpMyAdmin importa esses arquivos diretamente. A ferramenta calcula primeiro o tamanho compactado. Se ele estiver abaixo do seu limite, você não precisa dividir o arquivo.

Divisão apenas entre instruções completas

O parser reconhece strings com caracteres de escape, comentários com --, # e /* */, as linhas /*!40101 … */ do mysqldump e blocos DELIMITER. Um ponto e vírgula dentro de um texto ou bloco DELIMITER não divide o conteúdo.

INSERTs grandes são divididos linha por linha

Se um INSERT com muitas linhas for maior que uma parte, ele será dividido em vários INSERTs com o mesmo cabeçalho, sempre entre dois registros. Se um único registro for grande demais, a ferramenta informará seu número e sua tabela.

Cada parte pode ser importada separadamente

O conjunto de caracteres, o modo SQL, o fuso horário e a desativação das chaves estrangeiras presentes no cabeçalho do dump são incluídos em cada parte. Ao final, tudo é restaurado. USE e DELIMITER ativos também são mantidos.

Correções de importação selecionáveis

DEFINER, CREATE DATABASE e USE, collations do MySQL 8 e linhas de replicação: a ferramenta mostra quantas vezes aparecem e só altera o que você selecionar. As correções também funcionam sem dividir o arquivo.

Funciona no navegador, mesmo com centenas de MB

Dumps costumam conter dados de clientes. O arquivo é processado em fluxo por um Web Worker e não sai do seu computador. Você pode acompanhar o progresso e cancelar, sem travar a aba.

Como funciona

Como importar um arquivo SQL grande em três etapas

Do dump grande demais ao banco de dados pronto, sem conta e sem upload.

Passo 1

Carregar arquivo SQL

Arraste o arquivo .sql, .sql.gz ou .zip para o campo. A ferramenta o lê no navegador, conta as instruções e tabelas e procura problemas comuns de importação.

Passo 2

Compactar ou dividir

Escolha o limite de upload: phpMyAdmin 2 MB, 8 MB ou um valor personalizado. Se o arquivo .sql.gz ficar abaixo do limite, você baixa esse único arquivo. Caso contrário, a ferramenta o divide em partes menores que o tamanho definido (no máximo 1,9 MB para 2 MB), disponíveis individualmente ou em um ZIP, com correções de importação opcionais.

Passo 3

Importar no phpMyAdmin

Selecione o banco de dados à esquerda, abra a aba Importar, escolha o arquivo e clique em OK. Se houver várias partes, importe-as em sequência, começando pela parte 1. Você também pode copiar uma parte e colá-la na aba SQL.

Mensagens de erro

Por que a importação no phpMyAdmin falha e como resolver

As mensagens mais comuns ao importar um arquivo SQL e o que fazer na ferramenta.

Importação travada em “Aguarde, o arquivo está sendo processado.”

Causa: O arquivo excede o limite de upload do phpMyAdmin (conosco, 2 MB, exibidos como “Tamanho máximo: 2.048 KiB”). Nesse caso, o phpMyAdmin 5.2 muitas vezes não mostra um erro: o indicador de carregamento simplesmente continua girando. Dependendo da configuração do servidor, pode aparecer “Nenhum dado foi recebido para importação”.

Solução: Enviar como .sql.gz. Se ainda for grande demais, dividir e importar as partes em sequência.

“Parece que a conexão com o servidor foi perdida” na aba SQL

Causa: O texto colado é grande demais. O navegador o envia codificado; espaços e caracteres especiais contam três vezes, e quebras de linha, seis vezes. Assim, 1,9 MB de texto podem ultrapassar rapidamente 2 MB.

Solução: Na ferramenta, escolha “Colar no console SQL” para que as partes também fiquem abaixo do limite após a codificação.

#1227 Acesso negado; você precisa de (pelo menos um dos) privilégios SUPER

Causa: Views, triggers ou procedimentos contêm DEFINER com um usuário do servidor antigo. No MariaDB, esse privilégio se chama SET USER; para SQL_LOG_BIN em dumps do MySQL, BINLOG ADMIN.

Solução: Selecione a correção “Remover DEFINER” e, para dumps do MySQL, “Remover linhas de replicação”.

#1273 Collation desconhecida: 'utf8mb4_0900_ai_ci'

Causa: O dump vem do MySQL 8. O MariaDB não reconhece essa collation, nem mesmo na versão 11.6.

Solução: Selecione a correção “Substituir collations do MySQL 8”.

#1193 Variável de sistema desconhecida 'GTID_PURGED'

Causa: O dump vem de um servidor MySQL com replicação GTID. Essa linha existe apenas no MySQL.

Solução: Selecione a correção “Remover linhas de replicação”.

#1044 Acesso negado ao usuário … no banco de dados …

Causa: O dump cria um banco de dados próprio com CREATE DATABASE ou usa USE para mudar para um banco de dados ao qual seu usuário não tem acesso.

Solução: Selecione a correção “Remover CREATE DATABASE e USE” e escolha antes o banco de dados correto à esquerda.

#1452 Não é possível adicionar ou atualizar uma linha filha: uma restrição de chave estrangeira falhou

Causa: Uma parte insere dados cujas linhas relacionadas só aparecem em uma parte posterior.

Solução: A ferramenta desativa a verificação de chaves estrangeiras em cada parte. Mesmo assim, importe as partes na ordem correta.

#1050 A tabela já existe ou #1062 Entrada duplicada

Causa: Uma parte foi importada duas vezes, geralmente após uma interrupção.

Solução: Não comece do zero: retome a partir da parte cuja importação foi interrompida. Em caso de dúvida, esvazie o banco de dados e recomece.

O caminho certo

Compactar, dividir ou usar outra ferramenta?

Dividir nem sempre é a melhor solução. Veja como decidir em um minuto.

Caminho 1

Compactar (.sql.gz)

O caminho mais rápido se o arquivo compactado estiver abaixo do limite: um arquivo, uma importação, nenhuma alteração.

Caminho 2

Dividir com este SQL Splitter

Se até o .sql.gz for grande demais e você tiver apenas o phpMyAdmin. Exige vários uploads, mas nenhum software adicional.

Caminho 3

HeidiSQL ou outro cliente de banco de dados

Para dumps muito grandes ou registros individuais acima do limite. O cliente se conecta diretamente ao banco de dados, sem limite de upload. No Windows: Arquivo, Executar arquivo SQL.

Caminho 4

Cliente mysql no console

Se você tem um VPS ou acesso SSH: mysql -u benutzer -p datenbank < dump.sql importa sem o limite de upload do phpMyAdmin; para um arquivo .gz, use zcat.

Descobrir mais

Mais ferramentas

FAQ

Perguntas frequentes

Respostas rápidas sobre importações no phpMyAdmin, dumps SQL e este SQL Splitter.

Você recebe um .sql.gz que o phpMyAdmin importa diretamente ou vários arquivos .sql, cada um abaixo do seu limite, disponíveis separadamente e em um ZIP. Se quiser, também em .sql.gz e como texto para copiar. community-db.sql com 98 KB vira um .sql.gz de 20 KB; dividido com tamanho-alvo de 40 KB, são 3 partes, cada uma com o cabeçalho do dump, na ordem de importação. A ferramenta ainda mostra o tamanho, as instruções e as tabelas de cada parte.

O phpMyAdmin recebe arquivos pelo PHP, que limita o tamanho dos uploads (upload_max_filesize e post_max_size). Nos nossos servidores de banco de dados, o limite é de 2 MB; o phpMyAdmin mostra isso em Importar como “Tamanho máximo: 2.048 KiB”. O texto que você cola na aba SQL também está sujeito a esse limite. Por isso, a ferramenta tem o modo “Colar no console SQL”: ele considera o tamanho que o navegador realmente envia e cria partes menores conforme necessário.

Muitas vezes, sim. O limite vale para o arquivo enviado, ou seja, o arquivo compactado, e os dumps SQL contêm muito texto repetido. O phpMyAdmin descompacta arquivos .sql.gz durante a importação. O SQL Splitter calcula primeiro o tamanho do .sql.gz, mostra quantas vezes ele é menor e só recomenda dividir o arquivo se ele ainda ultrapassar seu limite após a compactação.

Carregue um arquivo .sql, .sql.gz ou .zip no SQL Splitter, por exemplo, uma exportação do mysqldump, mariadb-dump, phpMyAdmin, HeidiSQL ou Adminer. A divisão ocorre apenas entre instruções completas: a ferramenta reconhece strings com caracteres de escape, comentários, linhas /*!…*/ e blocos DELIMITER de triggers e procedimentos. Um ponto e vírgula dentro deles não divide a instrução. Se um INSERT com muitas linhas for maior que uma parte, ele será dividido entre registros em vários INSERTs com o mesmo cabeçalho. Se um único registro exceder o tamanho desejado, geralmente por causa de uma imagem em uma coluna BLOB, a ferramenta informará o número da instrução, a linha e a tabela. Importe essa parte com HeidiSQL ou o cliente mysql, ou tente enviá-la como .sql.gz.

Importe na ordem numérica, começando pela parte 1, sempre no mesmo banco de dados. A parte 1 geralmente contém as instruções CREATE TABLE; as partes seguintes preenchem as tabelas. Se o dump tiver chaves estrangeiras, cada parte desativa a verificação delas no início e a reativa no final. Se a importação de uma parte falhar, corrija o erro e retome nessa mesma parte. Não importe as partes anteriores novamente, ou você receberá “Table already exists” ou “Duplicate entry”. Se não souber mais o que já foi importado, esvazie o banco de dados (na aba Estrutura do phpMyAdmin, selecione e exclua todas as tabelas) e recomece pela parte 1.

Views, triggers, procedimentos e eventos registram o usuário sob o qual são executados (DEFINER). Se for um usuário do servidor antigo, como root, seu usuário do banco de dados não poderá criá-los. Marque “Remover DEFINER” na ferramenta para que o servidor os crie com seu usuário. No MariaDB, a permissão necessária se chama SET USER. Se o dump vier do MySQL, as linhas SQL_LOG_BIN (permissão BINLOG ADMIN) e GTID_PURGED também podem falhar; para isso, há a opção “Remover linhas de replicação”.

utf8mb4_0900_ai_ci é a collation padrão do MySQL 8. O MariaDB não a reconhece, nem mesmo na versão 11.6, e interrompe o CREATE TABLE com o erro #1273. A correção “Substituir collations do MySQL 8” troca essa e as outras variantes 0900 por utf8mb4_unicode_ci e as variantes que diferenciam maiúsculas de minúsculas por utf8mb4_bin. Ela não altera os comandos INSERT nem seus dados.

Não. Um dump costuma conter dados de clientes e credenciais. Por isso, a ferramenta lê o arquivo apenas no seu navegador, em um Web Worker. Não há upload, armazenamento nem necessidade de conta. Na aba Rede das ferramentas de desenvolvedor, você pode verificar que nenhuma solicitação envia seu arquivo durante a compactação ou divisão.

Mais alguma pergunta?

Contatar o suporte
Bancos de dados maiores?

Seu banco de dados sem limite de upload no seu próprio VPS

Com um VPS da ZAP-Hosting, você tem acesso root, importa dumps grandes pelo console e executa MySQL, MariaDB ou PostgreSQL como quiser.

4,4/5 Trustpilot32.000+ Servidores ativosDesde 2010

Sem configuração. Sem riscos. Online em segundos.

Duração flexívelCancele a qualquer momentoOnline em 60 segundos

Procurando mais ferramentas? Ver todas as ferramentas para desenvolvedores