Komunikat o błędzie jest dość jasny i wskazuje, na czym polega problem:ograniczenie czasu wykonania w środowisku php. Tak więc niektóre sposoby rozwiązania tego problemu są oczywiste:
- zwiększ limit czasu swojego środowiska
Możesz to zrobić, podnosząc limit w konfiguracji php lub, jeśli jest to dozwolone, dynamicznie zwiększając go w skrypcie importu. Czyli coś takiego jak ini_set('max_execution_time', 3000)
. Obie opcje są udokumentowane. Dokumentacja php powinna zawsze bądź pierwszą lokalizacją, od której powinieneś zacząć szukać odpowiedzi na takie pytanie.
- użyj innego środowiska php
Zazwyczaj takie ograniczenie jest wybierane dla środowiska internetowego, aby zmniejszyć ryzyko obsługi żądań od kogokolwiek tam. Jednak nic nie przemawia przeciwko używaniu innej konfiguracji dla innego środowiska. Zadania importu zazwyczaj nie przetwarzane przy użyciu żądań internetowych, ale przy użyciu php w wierszu poleceń (CLI). W takich przypadkach stosuje się zwykle oddzielną konfigurację. Znowu jest to udokumentowane. To jest to, czego możesz użyć tutaj, aby skonfigurować oba środowiska różniące się od siebie zgodnie z Twoimi potrzebami. Jednak do tego potrzebny jest dostęp do php na CLI. To nie jest problem w twoim własnym systemie, ale zwykle nie jest dostępny w tanich usługach hostingowych.
- Podziel import na mniejsze porcje
Ponieważ importowane dane są przechowywane w pliku sql, a więc prostym pliku tekstowym, możesz użyć dowolnego zwykłego edytora tekstu, aby zmodyfikować ten plik. Uwaga:edytor tekstu, nie edytor tekstu. Możesz podzielić dużą INSERT
oświadczenie zawarte w nim na kilka kawałków. Składnia jest dość oczywista.
- użyj wielu oddzielnych instrukcji insert zamiast jednej dużej
W zależności od narzędzia, którego używasz do utworzenia pliku zrzutu, który próbujesz zaimportować, masz teraz opcję utworzenia zrzutu w taki sposób, aby używał wielu oddzielnych INSERT
oświadczenia (po jednym na każdy wiersz) zamiast jednego dużego, połączonego. mysqldump
na przykład oferuje --skip-extended-insert
flaga za to. W przypadku takiego pliku zrzutu podzielenie importu na kilka mniejszych części przez proste podzielenie pliku jest trywialne.
- całkowicie pomiń php przy imporcie
Jeśli masz bezpośredni dostęp do serwera bazy danych (w tym przypadku MySQL), możesz po prostu wchodzić z nim bezpośrednio w interakcję zamiast używać phpMyAdmin
narzędzie pomiędzy. Możesz po prostu załadować plik zrzutu bezpośrednio za pomocą MySQLs source
Komenda. W ten sposób jesteś całkowicie niezależny od ograniczeń PHP.