Fejlmeddelelsen er ret klar og viser dig, hvad problemet er:begrænsningen af eksekveringstiden i dit php-miljø. Så nogle metoder til at løse dette er indlysende:
- forøg tidsgrænsen for dit miljø
Du kan gøre det ved enten at hæve grænsen i din php-konfiguration eller, hvis det er tilladt, ved dynamisk at øge den i dit importscript. Så noget som ini_set('max_execution_time', 3000)
. Begge muligheder er dokumenteret. PHP-dokumentationen skal altid være det første sted, hvor du skal begynde at lede efter et svar på et sådant spørgsmål.
- brug et andet php-miljø
Typisk er en sådan begrænsning valgt for et webmiljø for at reducere risikoen for at sende anmodninger fra nogen derude. Intet taler dog imod at bruge en anden konfiguration til et andet miljø. Importjob er typisk ikke behandles ved at bruge webanmodninger, men ved at bruge php i kommandolinjen (CLI). Til sådanne bruges typisk en separat konfiguration. Igen er dette dokumenteret. Det er det, du kan bruge her til at konfigurere begge miljøer forskellige fra hinanden efter dine behov. Men for dette skal du have adgang til php på CLI. Det er ikke noget problem på dit eget system, men normalt ikke tilgængeligt på en billig webhostingtjeneste.
- opdel din import i mindre bidder
Da de data, du importerer, er gemt i en sql-fil, altså en simpel tekstfil, kan du bruge en hvilken som helst almindelig teksteditor til at ændre den fil. Bemærk:en teksteditor, ikke en tekstbehandler. Du kan opdele den store INSERT
erklæring indeholdt i flere bidder. Syntaksen er ret indlysende.
- brug mange separate insert-sætninger i stedet for én stor
Afhængigt af det værktøj, du bruger til at oprette den dump-fil, du prøver at importere, har du nu mulighed for at oprette dumpen, så den bruger mange separate INSERT
udsagn (en for hver række) i stedet for en stor kombineret. mysqldump
tilbyder f.eks. --skip-extended-insert
flag for dette. Med sådan en dumpfil er det trivielt at opdele importen i flere mindre bidder ved blot at opdele filen.
- omgå php for importen helt
Hvis du har direkte adgang til din databaseserver (MySQL i dette tilfælde), så kan du blot interagere direkte med den i stedet for at bruge phpMyAdmin
værktøj derimellem. Du kan blot indlæse din dumpfil direkte ved hjælp af MySQLs source
kommando. På den måde er du fuldstændig uafhængig af php-begrænsningerne.