PhpMyadmin'de maksimum yürütme süresi


108

PhpMyadmin'de (bazı) sorguları yürütmeye çalıştığımda bu hatayı alıyorum

Önemli hata: 140. satırda C: \ xampp \ phpmyadmin \ libraries \ dbi \ mysql.dbi.lib.php'de 60 saniyelik maksimum yürütme süresi aşıldı

çünkü çok büyük bir masam var (9 milyonun üzerinde kaydım)

C: \ xampp \ php \ php.ini dosyasını düzenledim

ve "max execution time" değerini 60'tan 1000'e değiştirdikten sonra PHP'yi yeniden başlatır ve hala aynı hataya sahiptir.

Herhangi bir çözüm?


1
Sunucunuzu yeniden başlatmanız gerekir. Yapılandırma veya ini dosyasını değiştirdikten sonra.
4302836

Yanıtlar:


197

Bende de aynı hata var, lütfen gidin

xampp \ phpMyAdmin \ libraries \ config.default.php

Aramak : $cfg['ExecTimeLimit'] = 600;

'600'ü' 6000 'gibi daha yüksek bir değere değiştirebilirsiniz.

Saniye cinsinden maksimum yürütme süresi (sınırsız için 0'dır).

Bu, hatanızı düzeltir.


1
Bunu yanı :) ne olmadığını hangi kodun ve temizlemek yapmak için biçimlendirme kodu kullanabilirsiniz
yayılma

25
Bu dosyayı düzenlememeniz gerektiği oldukça açıktır (dosyanın başlığında). Bunun yerine, config.inc.php dosyasını düzenlemelisiniz, bu satırı başka bir yanıtta söylediği gibi ekleyerek
dsnunez

1
Aşağıdaki cevabımı kontrol edin.
Gitmenin

3
Bunu eklemek işimi config.inc.phpbenim için yapmadı. Yardım config.default.phpve çalışmayı değiştirmek .
Sahte

Wamp yolu wamp64\apps\phpmyadmin4.6.4\libraries\config.default.phpOR için ise phpmyadmin'e tıklayarak wamp tray icon > Apache > Alias Directoriesve düzenleyerek phpmyadmin dizininizin yolunu bulabilirsiniz . Ayrıca dsnunez tarafından da belirtildiği gibi, düzenlemek daha iyidir config.inc.php--düzenle - düzenleme config.inc.phpbenim için işe yaramadı
AbsarAkram

107

Windows'ta Xampp sürümü için

Bu satırı xampp \ phpmyadmin \ config.inc.php'ye ekleyin

$cfg['ExecTimeLimit'] = 6000;

Ve xampp \ php \ php.ini'yi şu şekilde değiştirin:

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

Ve xampp \ mysql \ bin \ my.ini'yi değiştirin

max_allowed_packet = 200M

1
Çok daha küçük bir veri seti (~ 120.000 satır) dışında tamamen aynı sorunları yaşıyorum - cevabınız kesinlikle işleri çok daha iyi hale getirdi :).
Rob

Tabloda Gözat'a bastığımda Windows için xampp için komut dosyası zaman aşımını anında buldum ~ 130mb
Matthew Lock

Ne yazık $cfg['ExecTimeLimit'] = 6000;ki kurulumum üzerinde sıfır etkisi var gibi görünüyor. Tüm sunucu için geçerli olan php.ini yerine yerel olarak ayarlamayı tercih ederim, ama belki de tek seçenek budur.
Simon East

1
Tüm bunların ne işe yaradığından emin değilim, ama oyumu aldın :-)
nawissor

13

Bir curl uygularken aynı problemle karşılaştım. php.iniDosyada aşağıdakileri değiştirdiğimde doğru anladım :

max_execution_time = 1000 ;

ve ayrıca

max_input_time = 1000 ;

Muhtemelen probleminiz yukarıdaki iki değişiklik yapılarak ve apache sunucusunu yeniden başlatılarak çözülmelidir.

Yukarıdakini değiştirdikten sonra bile sorun devam eder ve bunun mysql kullanan bazı veritabanı işlemleri nedeniyle olduğunu düşünüyorsanız, bunu da değiştirmeyi deneyebilirsiniz:

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

Tüm bunlar php.ini dosyasında değiştirilmeli ve değişiklikleri görmek için apache sunucusu yeniden başlatılmalıdır.


7

Değişikliğiniz işe yaramalı. Ancak, 'xampp' yığınına sahip potansiyel olarak birkaç php.ini yapılandırma dosyası vardır. 'Apache'ye özgü bir php.ini olup olmadığını belirlemeye çalışın. Olası konumlardan biri:

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


1
xampp'imde o dosya C:\xampp\php\php.inigirip 442 numaralı satıra git (yaklaşık olarak - bu satır numarası manuel düzenlemeden sonra değişecektir) max_execution_time = 1000 ama bu benim için çalışmıyor. Sonra bunu C: \ xampp \ phpMyAdmin \ config.inc.php'de deneyeceğim$cfg['Servers'][$i]['bs_temp_blob_timeout'] = 1200;
Elshan

5

Değişen php.inibir web uygulaması için Apache yeniden başlatmayı gerektirir.

Fonksiyonu çalıştıran bir PHP betiği çalıştırarak değişikliğin gerçekleştiğini doğrulamalısınız phpinfo(). Bu işlevin çıktısı size zaman aşımı değeri dahil pek çok PHP parametresi söyleyecektir.

php.iniApache tarafından kullanılan dosyanın aynısı olmayan bir kopyasını da değiştirmiş olabilirsiniz .


5

ini_set('max_execution_time', 0);veya adı verilen dosya adını oluşturun php.inive ilk satırı girin, max_execution_time=0ardından kaydedin ve dosyayı uygulamanızın kök klasörüne koyun.

Bu kadar. İyi şanslar.


3
Bir set_time_limit()işlevi var. (Ab) kullanmaya gerek yok ini_set().
ThiefMaster

3

Wamp Kullanıcısı için,

Şuraya gidin: wamp\apps\phpmyadmin3.3.9\libraries

536. satırın altında, locate $cfg['ExecTimeLimit'] = 0;

ve değeri 0'dan 6000'e değiştirin. ör.

$cfg['ExecTimeLimit'] = 0;

İçin

$cfg['ExecTimeLimit'] = 6000;

Wamp sunucusunu ve phew'i yeniden başlatın.

Sihir gibi çalışıyor!


Bu aslında yanlış, tam 0
tersi olmalı,

2

Php.ini'de mysql.connect_timeout'u da kontrol etmelisiniz. Soketin kapanmasından ve Fatal'ın geri verilmesinden sorumludur. Örneğin, şu şekilde değiştirin:

mysql.connect_timeout = 3600

Bu süre her zaman saniye cinsinden sayılacaktır, yani benim örneğimde 1 saatiniz var.


2

WAMP üzerinde benim için işe yarayan şey şu dosyayı değiştirmekti: \ Wamp64 \ alias \ phpmyadmin.conf, satırlar:

 php_admin_value max_execution_time 600
 php_admin_value max_input_time 600

Kitaplık dosyasını değiştirmem gerekmedi.


1

Muhtemelen XMAPP'yi hizmet olarak kullanıyorsunuz, XMAPP'yi düzgün bir şekilde yeniden başlatmak için, XMAPP kontrol panelini açmanız gerekiyor, Apache ve MySQL'e karşı hem "Svc" mdodüllerinin işaretini kaldırmalısınız. Sonra çıkışa tıklayın, şimdi XMAPP'yi yeniden başlatın ve bitirdiniz.



1

Sınırsız süre için 'SIFIR'.

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

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

Ayrıca büyük dosyayı doğrudan MySQL'den sorgu veya PHP sorgusu olarak içe aktarabilirsiniz.

Bu yöntemi kullanarak 500.000 satır yerel sunucuya aktarmam 18 saniyemi aldı.

(önce tablo oluşturun) - sonra:

LOAD DATA LOCAL INFILE 'Path_To_Your_File.csv' 
INTO TABLE Your_Table_Name 
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\n' 
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.