A mensagem de erro é bastante clara e indica qual é o problema:a limitação do tempo de execução em seu ambiente php. Portanto, algumas abordagens para resolver isso são óbvias:
- aumente o limite de tempo do seu ambiente
Você pode fazer isso aumentando o limite em sua configuração php ou, se permitido, aumentando-o dinamicamente dentro de seu script de importação. Então, algo como
ini_set('max_execution_time', 3000)
. Ambas as opções estão documentadas. A documentação do php deve sempre ser o primeiro local onde você deve começar a procurar uma resposta para tal pergunta. - usar um ambiente php diferente
Normalmente, essa limitação é escolhida para um ambiente da Web para reduzir os riscos de atender a solicitações de qualquer pessoa. No entanto, nada fala contra o uso de uma configuração diferente para outro ambiente. Os trabalhos de importação normalmente não processado usando solicitações da web, mas usando php na linha de comando (CLI). Para tal, normalmente é usada uma configuração separada. Novamente, isso está documentado. Isso é o que você pode usar aqui para configurar os dois ambientes diferentes um do outro de acordo com suas necessidades. No entanto, para isso, você precisa acessar o php na CLI. Isso não é problema em seu próprio sistema, mas geralmente não está disponível em um serviço de hospedagem barato.
- divida sua importação em partes menores
Como os dados que você importa são armazenados em um arquivo sql, portanto, um arquivo de texto simples, você pode usar qualquer editor de texto comum para modificar esse arquivo. Nota:um editor de texto, não um processador de texto. Você pode dividir o grande
INSERT
declaração contida lá em vários pedaços. A sintaxe é bastante óbvia. - use várias instruções de inserção separadas em vez de uma grande
Dependendo da ferramenta que você usa para criar esse arquivo de despejo que você está tentando importar, agora você tem uma opção para criar o despejo de forma que ele use vários
INSERT
separados instruções (uma para cada linha) em vez de uma grande e combinada. mysqldump
por exemplo, oferece o --skip-extended-insert
bandeira para isso. Com esse arquivo de despejo, é trivial dividir a importação em vários pedaços menores simplesmente dividindo o arquivo. - ignore completamente o php para a importação
Se você tiver acesso direto ao seu servidor de banco de dados (MySQL neste caso), você pode simplesmente interagir diretamente com ele em vez de usar o
phpMyAdmin
ferramenta no meio. Você pode simplesmente carregar seu dumpfile diretamente por meio do MySQLs source
comando. Dessa forma você é completamente independente das limitações do php.