Chybová zpráva je zcela jasná a ukazuje vám, v čem je problém:omezení doby provádění ve vašem prostředí php. Některé přístupy k řešení jsou tedy zřejmé:
- zvyšte časový limit vašeho prostředí
Můžete to udělat buď zvýšením limitu v konfiguraci php, nebo, je-li to povoleno, jeho dynamickým zvýšením ve vašem importovacím skriptu. Takže něco jako ini_set('max_execution_time', 3000)
. Obě možnosti jsou zdokumentovány. Dokumentace php by měla vždy být prvním místem, kde byste měli začít hledat odpověď na takovou otázku.
- použijte jiné prostředí php
Obvykle se takové omezení volí pro webové prostředí, aby se snížilo riziko obsluhy požadavků od kohokoli tam venku. Nic však nemluví proti použití jiné konfigurace pro jiné prostředí. Úlohy importu obvykle nejsou zpracovávány pomocí webových požadavků, ale pomocí php v příkazovém řádku (CLI). K tomu se obvykle používá samostatná konfigurace. Opět je to zdokumentováno. To je to, co zde můžete použít ke konfiguraci obou prostředí, která se od sebe liší podle vašich potřeb. K tomu však potřebujete přístup k php na CLI. To není problém na vašem vlastním systému, ale obvykle není k dispozici na levné webhostingové službě.
- rozdělte import na menší části
Vzhledem k tomu, že importovaná data jsou uložena v souboru sql, tedy v jednoduchém textovém souboru, můžete tento soubor upravit pomocí libovolného běžného textového editoru. Poznámka:textový editor, ne textový procesor. Velký INSERT
můžete rozdělit prohlášení v něm obsažené na několik kousků. Syntaxe je zcela jasná.
- použijte mnoho samostatných příkazů vložení namísto jednoho velkého
V závislosti na nástroji, který používáte k vytvoření souboru výpisu, který se pokoušíte importovat, máte nyní možnost vytvořit výpis tak, aby používal mnoho samostatných INSERT
příkazy (jeden pro každý řádek) namísto jednoho velkého kombinovaného. mysqldump
například nabízí --skip-extended-insert
vlajka za to. U takového souboru výpisu je triviální rozdělit import na několik menších částí pouhým rozdělením souboru.
- pro import úplně obejít php
Pokud máte přímý přístup k vašemu databázovému serveru (v tomto případě MySQL), můžete s ním jednoduše komunikovat přímo namísto použití phpMyAdmin
nástroj mezi tím. Soubor s výpisem paměti můžete jednoduše načíst přímo pomocí source
MySQL příkaz. Tímto způsobem jste zcela nezávislí na omezeních php.