PHP: maximale Ausführungszeit beim Importieren der .SQL-Datendatei
Ich versuche zu importieren, eine große .sql-Datei mit phpMyAdmin in XAMPP. Aber dies nimmt viel Zeit und ich erhalte:
Fatal error: Maximum execution time of 300 seconds exceeded in C:\xampp\phpMyAdmin\libraries\dbi\DBIMysqli.class.php auf der Linie 285
Und die Datei ist etwa 1,2 Millionen Zeilen lang.
Die Datei ist über 30 MB groß, also es ist nicht so groß. Ich weiß nicht wirklich verstehen, warum es so lange gedauert hat.
;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;
; Maximum execution time of each script, in seconds
; http://php.net/max-execution-time
; Note: This directive is hardcoded to 0 for the CLI SAPI
max_execution_time=30000
; Maximum amount of time each script may spend parsing request data. It's a good
; idea to limit this time on productions servers in order to eliminate unexpectedly
; long running scripts.
; Note: This directive is hardcoded to -1 for the CLI SAPI
; Default Value: -1 (Unlimited)
; Development Value: 60 (60 seconds)
; Production Value: 60 (60 seconds)
; http://php.net/max-input-time
max_input_time=60
; Maximum input variable nesting level
; http://php.net/max-input-nesting-level
;max_input_nesting_level = 64
; How many GET/POST/COOKIE input variables may be accepted
; max_input_vars = 1000
; Maximum amount of memory a script may consume (128MB)
; http://php.net/memory-limit
memory_limit=200M
Das ist die Konfigurationsdatei für php.ini in xampp, aus irgendeinem Grund bekomme ich noch
Fatal error: Maximum execution time of 300 seconds exceeded in C:\xampp\phpMyAdmin\libraries\dbi\DBIMysqli.class.php auf der Linie 285.
InformationsquelleAutor der Frage EssexPN | 2014-04-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es eine Konfigurationsvariable, die in der phpMyAdmin-Verzeichnis, finden Sie in
libraries\config.default.php
genannt$cfg['ExecTimeLimit']
Sie so einstellen können, was maximale Ausführungszeit, die Sie benötigen.InformationsquelleAutor der Antwort Randell
Gut, um loszuwerden, diese müssen Sie phpMyadmin variable auf 0, die unbegrenzt oder je nachdem, welcher Wert in Sekunden, finden Sie für Ihre Bedürfnisse geeignet. Oder Sie können immer mit CLI(command line interface), um nicht auch solche Fehler(Für die Sie möchten, werfen Sie einen Blick auf dieser link.
Nun über den Fehler hier zunächst auf der sicheren Seite stellen Sie sicher, dass verschiedene PHP-Parameter korrekt, so dass Sie hochladen können große Dateien und kann eine maximale Ausführungszeit von diesem Ende. Wenn nicht, gehen Sie vor und legen Sie unterhalb von drei Parametern von php.ini-Datei,
Sobald das erledigt ist wieder zu finden, phpMyadmin config Datei mit dem Namen etwas wie "config.default.php". Auf XAMPP finden Sie unter "C:\xampp\phpMyAdmin\libraries" Ordner. Öffnen Sie die Datei namens
config.default.php
und Satz :Einmal eingestellt ist, starten Sie den MySQL und Apache und gehen importieren Sie Ihre Datenbank.
Genießen... 🙂
InformationsquelleAutor der Antwort Umesh Patil
Die Sie importieren möchten, einen riesigen Datensatz über ein web-interface.
Standardmäßig die PHP-Skripte ausgeführt werden, die im Kontext eines web-server haben ein maximum execution time limit, weil Sie nicht möchten, dass ein einzelnes fehlerhaftes PHP-script lahmlegen der gesamten server-und verursacht einen denial-of-service.
Deshalb Ihr import ist fehlgeschlagen. PHPMyAdmin ist eine Webanwendung und ist auf die Grenze von PHP.
Könnten Sie versuchen, die Erhöhung der Grenze, aber diese Grenze existiert aus gutem Grund also ist das nicht ratsam. Ein Skript ausgeführt wird, wird eine sehr lange Zeit für die Ausführung in einem web-server ist eine sehr schlechte Idee.
PHPMyAdmin ist nicht wirklich vorgesehen für schwere Aufgaben wie diese, es ist gedacht für den täglichen housekeeping-Aufgaben-und Problemlösung.
Ihre beste option ist die Verwendung des richtigen tools für den job, wie die mysql-Kommandozeilen-tools. Angenommen, Ihre Datei ist eine SQL-dump, dann können Sie versuchen, die folgenden von der Kommandozeile:
Oder wenn Sie nicht bequem mit Kommandozeilen-tools, die dann so etwas wie SQLYog (für Windows), Sequel Pro (Mac), etc ist vielleicht besser geeignet für den Betrieb einer import-job
InformationsquelleAutor der Antwort GordonM
Dieser arbeitete für mich.
Wenn Sie Maximum execution time 300 überschritten
DBIMysqli.class.php
- Datei. Öffnen Sie die folgende Datei im text-editorC:\xampp\phpMyAdmin\libraries\config.default.php
dannsuchen Sie die folgende Zeile des Codes:
, und ändern Sie den Wert
300
zu900
.https://surya2in1.wordpress.com/2015/07/28/fatal-error-maximum-execution-time-of-300-seconds-exceeded/
InformationsquelleAutor der Antwort William
Ist es eine .sql-Datei, oder ist es komprimiert.zip -, .gz, etc)? Komprimierte Formate erfordern manchmal mehr PHP-Ressourcen, so dass Sie versuchen könnte, Dekomprimieren Sie Sie vor dem hochladen.
Allerdings gibt es andere Methoden, die Sie ausprobieren können auch. Wenn Sie command-line-Zugriff, einfach die Datei hochladen und importieren mit den Kommandozeilen-client
mysql
(einmal ammysql>
Eingabeaufforderunguse databasename;
dannsource file.sql
).Ansonsten können Sie den phpMyAdmin "UploadDir" - Funktion, um die Datei auf dem server und es erscheint innerhalb von phpMyAdmin zimmerreserviereung, ohne das Sie auch laden Sie es von Ihrer lokalen Maschine.
Dieser link hat Informationen über die Verwendung UploadDir und diese eine hat einige weitere Tipps und Methoden.
InformationsquelleAutor der Antwort Isaac Bennetch
müssen Sie ändern
php_admin_value max_execution_time
in Ihrer Alias-config(\XAMPP\alias\phpmyadmin.conf)
Antwort ist hier:
WAMPServer phpMyadmin Maximale Ausführungszeit von 360 Sekunden überschritten
InformationsquelleAutor der Antwort mp.hamid
Nach dem Versuch viele Dinge, ohne Erfolg, ich habe es geschafft, SSH-Zugang zum server, und importieren Sie meine 80Mb Datenbank mit einer Befehlszeile, statt phpMyAdmin. Hier ist der Befehl:
Es ist viel einfacher zu importieren großen Datenbanken, wenn Sie mit xammp unter windows der Pfad für mysql.exe ist
C:\xampp\mysql\bin\mysql.exe
InformationsquelleAutor der Antwort Toni Almeida
Können Sie den Grenzwert erhöhen:
(Beachten Sie, dass dieses Skript kann zu hohen Speicherverbrauch als auch, so dass Sie wahrscheinlich haben, um zu erhöhen, als auch)
Andere mögliche Lösung: Chunk Ihre sql-Datei, und diese als Teile. Ich nehme an, es ist nicht eine große SQL-Abfrage, oder?
Update: Wie @Isaac wies darauf hin, dies über PHPMyAdmin. In diesem Fall setzen
max_execution_timeout
in php.ini. (Die Lage hängt von der Umgebung ab)InformationsquelleAutor der Antwort mark.sagikazar
Folgendes könnte helfen:
ini_set('max_execution_time', 100000);
Und in Ihre mysql -
max_allowed_packet=100M
in einigen Fällen, wo Anfragen sind zu lang, sql produzieren auch und der Fehler "MySQL server has gone away";Ändern Sie die Werte, auf das, was Sie brauchen.
InformationsquelleAutor der Antwort Neta Meta