Maksymalny czas wykonywania w phpMyadmin

108

Kiedy próbuję wykonać (niektóre) zapytania w phpMyadmin, pojawia się ten błąd

Błąd krytyczny: przekroczono maksymalny czas wykonywania 60 sekund w C: \ xampp \ phpmyadmin \ libraries \ dbi \ mysql.dbi.lib.php w linii 140

ponieważ mam bardzo dużą tabelę (ponad 9 milionów rekordów)

Dokonałem edycji pliku C: \ xampp \ php \ php.ini

i zmienił wartość „maksymalnego czasu wykonania” z 60 na 1000, a następnie uruchamia ponownie PHP i nadal wyświetla ten sam błąd.

Jakieś rozwiązanie?

ahmed
źródło
1
Musisz wymagać ponownego uruchomienia serwera. Po zmianie w pliku config lub ini.
4302836

Odpowiedzi:

196

Mam ten sam błąd, przejdź do

xampp \ phpMyAdmin \ libraries \ config.default.php

Szukać : $cfg['ExecTimeLimit'] = 600;

Możesz zmienić wartość „600” na wyższą, np. „6000”.

Maksymalny czas wykonywania w sekundach to (0 bez ograniczeń).

To naprawi twój błąd.

user1900623
źródło
1
Możesz użyć formatowania kodu, aby wyjaśnić, co to jest kod, a co nie :)
okresie
24
Jest całkiem jasne (w nagłówku pliku), że nie powinieneś edytować tego pliku. Zamiast tego powinieneś edytować config.inc.php, dodając tę ​​linię, tak jak jest to napisane w innej odpowiedzi
dsnunez
1
Sprawdź moją odpowiedź poniżej. Tak jest;)
M_R_K
3
Dodanie tego do config.inc.phppliku nie pomogło. Modyfikacja config.default.phppomogła i zadziałała.
Fałszywy
W przypadku ścieżki wampa to wamp64\apps\phpmyadmin4.6.4\libraries\config.default.phpLUB możesz znaleźć ścieżkę do katalogu phpmyadmin, klikając wamp tray icon > Apache > Alias Directoriesi edytuj plik phpmyadmin. Również, jak wspomniał dsnunez, lepiej edytować - edytuj - config.inc.phpedycja config.inc.phpnie działała dla mnie
AbsarAkram
107

Wersja Xampp na Windows

Dodaj tę linię do xampp \ phpmyadmin \ config.inc.php

$cfg['ExecTimeLimit'] = 6000;

I zmień xampp \ php \ php.ini na

post_max_size = 750M 
upload_max_filesize = 750M   
max_execution_time = 5000
max_input_time = 5000
memory_limit = 1000M

I zmień xampp \ mysql \ bin \ my.ini

max_allowed_packet = 200M
M_R_K
źródło
1
Miałem dokładnie te same problemy, z wyjątkiem znacznie mniejszego zbioru danych (~ 120 tys. Wierszy) - Twoja odpowiedź zdecydowanie poprawiła sytuację :).
Rob
Otrzymałem limit czasu skryptu dla xampp dla Windows natychmiast po naciśnięciu Przeglądaj na stole ~ 130 MB
Matthew Lock,
Niestety $cfg['ExecTimeLimit'] = 6000;wydaje się, że nie ma to żadnego wpływu na moją instalację. Wolałbym ustawić to lokalnie niż w php.ini, który dotyczy całego serwera, ale może to jedyna opcja.
Simon East
1
Nie jestem pewien, co to wszystko robi, ale masz mój głos :-)
nawissor
13

Napotkałem ten sam problem podczas wykonywania zawinięcia. Udało mi się to dobrze, kiedy zmieniłem w php.inipliku:

max_execution_time = 1000 ;

i również

max_input_time = 1000 ;

Prawdopodobnie twój problem powinien zostać rozwiązany poprzez wprowadzenie powyższych dwóch zmian i zrestartowanie serwera Apache.

Nawet po zmianie powyższego problem nadal występuje i jeśli uważasz, że jest to spowodowane jakąś operacją na bazie danych przy użyciu mysql, możesz spróbować zmienić to również:

mysql.connect_timeout = 1000 ; // this is not neccessary

Wszystko to należy zmienić w pliku php.ini i zrestartować serwer Apache, aby zobaczyć zmiany.

Sony Mathew
źródło
7

Twoja zmiana powinna zadziałać. Jednak istnieje potencjalnie kilka plików konfiguracyjnych php.ini ze stosem „xampp”. Spróbuj określić, czy istnieje plik php.ini specyficzny dla „Apache”. Jedna potencjalna lokalizacja to:

C: \ xampp \ apache \ bin \ php.ini

Brian
źródło
1
na moim Xampp ten plik w formacie C:\xampp\php\php.ini i goto numer linii 442 (w przybliżeniu - jakiś czas ten numer linii ulegnie zmianie po ręcznej edycji), max_execution_time = 1000 ale to nie działa dla mnie. Następnie spróbuję tego na C: \ xampp \ phpMyAdmin \ config.inc.php$cfg['Servers'][$i]['bs_temp_blob_timeout'] = 1200;
Elshan
5

Zmiana php.iniaplikacji internetowej wymaga ponownego uruchomienia Apache.

Powinieneś sprawdzić, czy zmiana nastąpiła, uruchamiając skrypt PHP, który wykonuje tę funkcję phpinfo() . Wynik tej funkcji powie Ci wiele parametrów PHP, w tym wartość limitu czasu.

Mogłeś również zmienić kopię tego, php.inico nie jest tym samym plikiem używanym przez Apache.

Bill Karwin
źródło
5

ini_set('max_execution_time', 0);lub utwórz nazwę pliku o nazwie php.inii wprowadź pierwszą linięmax_execution_time=0 a następnie zapisz go i umieść plik w folderze głównym aplikacji.

Otóż ​​to. Powodzenia.

Karthikeyan
źródło
3
Jest set_time_limit()funkcja. Nie ma potrzeby (nad) używać ini_set().
ThiefMaster
3

Cóż dla użytkownika Wampa,

Iść do: wamp\apps\phpmyadmin3.3.9\libraries

Zgodnie z linią 536, locate $cfg['ExecTimeLimit'] = 0;

i zmień wartość od 0 do 6000. np

$cfg['ExecTimeLimit'] = 0;

Do

$cfg['ExecTimeLimit'] = 6000;

Zrestartuj serwer wamp i uff.

Działa jak magia!

Olasunkanmi
źródło
To jest faktycznie błędne, powinno być odwrotnie, 0oznacza brak limitu czasu wykonania
user919426
2

W php.ini musisz też sprawdzić mysql.connect_timeout. Odpowiada za zamykanie gniazda i zwracanie Fatala. Na przykład zmień to na:

mysql.connect_timeout = 3600

Ten czas będzie zawsze liczony w sekundach, więc w moim przykładzie masz 1 godzinę.

andymnc
źródło
2

To, co zadziałało na mnie na WAMP, to modyfikacja pliku: \ Wamp64 \ alias \ phpmyadmin.conf, linie:

 php_admin_value max_execution_time 600
 php_admin_value max_input_time 600

Nie musiałem zmieniać pliku biblioteki.

Casso
źródło
1

Prawdopodobnie używasz XMAPP jako usługi, aby poprawnie zrestartować XMAPP, musisz otworzyć panel kontrolny XMAPP i odznacz oba mdodules "Svc" względem Apache i MySQL. Następnie kliknij wyjście, teraz uruchom ponownie XMAPP i gotowe.

Jamal
źródło
1

„ZERO” przez nieograniczony czas.

C: \ Apache24 \ htdocs \ phpmyadmin \ libraries \ Config.class.php

/**
 * maximum execution time in seconds (0 for no limit)
 *
 * @global integer $cfg['ExecTimeLimit']
 */
$cfg['ExecTimeLimit'] = 0;

Możesz także zaimportować duży plik bezpośrednio z MySQL jako zapytanie lub zapytanie PHP.

Zaimportowanie 500 000 wierszy na lokalny serwer przy użyciu tej metody zajęło mi 18 sekund.

(najpierw utwórz tabelę) - następnie:

LOAD DATA LOCAL INFILE 'Path_To_Your_File.csv' 
INTO TABLE Your_Table_Name 
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\n' 
KDawg
źródło