เวลาดำเนินการสูงสุดใน phpMyadmin


108

เมื่อฉันพยายามดำเนินการ (บางส่วน) แบบสอบถามใน phpMyadmin ฉันได้รับข้อผิดพลาดนี้

ข้อผิดพลาดร้ายแรง: เกินเวลาดำเนินการสูงสุด 60 วินาทีใน C: \ xampp \ phpmyadmin \ libraries \ dbi \ mysql.dbi.lib.php ในบรรทัด 140

เพราะฉันมีโต๊ะขนาดใหญ่มาก (มากกว่า 9 ล้านรายการ)

ฉันได้แก้ไขไฟล์ C: \ xampp \ php \ php.ini

และเปลี่ยนค่าของ "เวลาดำเนินการสูงสุด" จาก 60 เป็น 1,000 จากนั้นรีสตาร์ท PHP และยังคงมีข้อผิดพลาดเหมือนเดิม

วิธีแก้ปัญหาใด ๆ


1
คุณต้องรีสตาร์ทเซิร์ฟเวอร์ของคุณ หลังจากเปลี่ยนไฟล์ config หรือ ini
4302836

คำตอบ:


196

ฉันมีข้อผิดพลาดเดียวกันโปรดไปที่

xampp \ phpMyAdmin \ libraries \ config.default.php

มองหา : $cfg['ExecTimeLimit'] = 600;

คุณสามารถเปลี่ยน "600" เป็นค่าที่สูงกว่าได้เช่น "6000"

เวลาดำเนินการสูงสุดเป็นวินาทีคือ (0 ไม่ จำกัด )

วิธีนี้จะแก้ไขข้อผิดพลาดของคุณ


1
คุณสามารถใช้การจัดรูปแบบโค้ดเพื่อให้ชัดเจนว่าโค้ดคืออะไรและอะไรที่ไม่ใช่โค้ด :)
ช่วง

24
ค่อนข้างชัดเจน (ในส่วนหัวของไฟล์) ว่าคุณไม่ควรแก้ไขไฟล์นี้ คุณควรแก้ไข config.inc.php แทนโดยเพิ่มบรรทัดนี้ตามที่ระบุไว้ในคำตอบอื่น
dsnunez

1
ตรวจสอบคำตอบของฉันด้านล่าง นั่นคือวิธีที่จะไป;)
M_R_K

3
การเพิ่มสิ่งนี้ไปconfig.inc.phpยังไม่ได้งานสำหรับฉัน การแก้ไขความconfig.default.phpช่วยเหลือและการทำงาน
ปลอม

สำหรับ wamp path คือwamp64\apps\phpmyadmin4.6.4\libraries\config.default.phpOR คุณสามารถค้นหา path ของไดเร็กทอรี phpmyadmin ของคุณได้โดยคลิกwamp tray icon > Apache > Alias Directoriesและแก้ไข phpmyadmin ตามที่กล่าวไว้โดย dsnunez การแก้ไขจะดีกว่า - แก้ไข - config.inc.phpการแก้ไขconfig.inc.phpไม่ได้ผลสำหรับฉัน
AbsarAkram

107

สำหรับเวอร์ชัน Xampp บน Windows

เพิ่มบรรทัดนี้ในxampp \ phpmyadmin \ config.inc.php

$cfg['ExecTimeLimit'] = 6000;

และเปลี่ยนxampp \ php \ php.iniเป็น

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

และเปลี่ยนxampp \ mysql \ bin \ my.ini

max_allowed_packet = 200M

1
ฉันมีปัญหาเดียวกันทุกประการยกเว้นชุดข้อมูลที่เล็กกว่ามาก (~ 120k แถว) - คำตอบของคุณทำให้สิ่งต่างๆดีขึ้นมาก :)
Rob

ฉันได้รับสคริปต์หมดเวลาสำหรับ xampp สำหรับ Windows ทันทีเมื่อกดเรียกดูบนโต๊ะ ~ 130mb
Matthew Lock

น่าเศร้าที่$cfg['ExecTimeLimit'] = 6000;ดูเหมือนว่าจะมีผลเป็นศูนย์ในการติดตั้งของฉัน ฉันต้องการตั้งค่าภายในเครื่องมากกว่าใน php.ini ซึ่งใช้กับเซิร์ฟเวอร์ทั้งหมด แต่นั่นอาจเป็นทางเลือกเดียว
Simon East

1
ไม่แน่ใจว่าทั้งหมดทำอย่างไร แต่คุณได้รับการโหวตของฉัน :-)
nawissor

13

ฉันประสบปัญหาเดียวกันในขณะดำเนินการ curl ฉันเข้าใจถูกแล้วเมื่อเปลี่ยนสิ่งต่อไปนี้ในphp.iniไฟล์:

max_execution_time = 1000 ;

และนอกจากนี้ยังมี

max_input_time = 1000 ;

ปัญหาของคุณควรได้รับการแก้ไขโดยทำการเปลี่ยนแปลงสองอย่างข้างต้นแล้วรีสตาร์ทเซิร์ฟเวอร์ apache

แม้หลังจากเปลี่ยนปัญหาข้างต้นแล้วปัญหายังคงมีอยู่และหากคุณคิดว่าเป็นเพราะการทำงานของฐานข้อมูลบางอย่างโดยใช้ mysql คุณสามารถลองเปลี่ยนสิ่งนี้ได้ด้วย:

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

ทั้งหมดนี้ควรเปลี่ยนแปลงในไฟล์ php.ini และควรรีสตาร์ทเซิร์ฟเวอร์ apache เพื่อดูการเปลี่ยนแปลง


7

การเปลี่ยนแปลงของคุณควรได้ผล อย่างไรก็ตามมีไฟล์คอนฟิกูเรชัน php.ini เพียงไม่กี่ไฟล์ที่มีสแต็ก 'xampp' พยายามระบุว่ามี php.ini เฉพาะ 'apache' หรือไม่ สถานที่ที่มีศักยภาพแห่งหนึ่งคือ:

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


1
บน xampp ของฉันที่ไฟล์ในC:\xampp\php\php.iniและไปที่บรรทัดหมายเลข442 (โดยประมาณ - บางครั้งหมายเลขบรรทัดนั้นจะมีการเปลี่ยนแปลงหลังจากการแก้ไขด้วยตนเอง) max_execution_time = 1000 แต่มันไม่ได้ผลสำหรับฉัน จากนั้นฉันจะลองสิ่งนี้กับ C: \ xampp \ phpMyAdmin \ config.inc.php$cfg['Servers'][$i]['bs_temp_blob_timeout'] = 1200;
Elshan

5

การเปลี่ยนphp.iniเว็บแอปพลิเคชันต้องรีสตาร์ท Apache

คุณควรตรวจสอบว่าการเปลี่ยนแปลงที่เกิดขึ้นโดยใช้สคริปต์ PHP phpinfo()ที่รันฟังก์ชั่น ผลลัพธ์ของฟังก์ชันนั้นจะบอกพารามิเตอร์ PHP จำนวนมากรวมถึงค่าการหมดเวลา

คุณอาจเปลี่ยนสำเนาphp.iniที่ไม่ใช่ไฟล์เดียวกับที่ใช้โดย Apache


5

ini_set('max_execution_time', 0);หรือสร้างชื่อไฟล์ที่เรียกphp.iniและป้อนบรรทัดแรกmax_execution_time=0จากนั้นบันทึกและวางไฟล์ไว้ในโฟลเดอร์รากของแอปพลิเคชันของคุณ

แค่นั้นแหละ. โชคดี.


3
มีset_time_limit()ฟังก์ชั่น ไม่จำเป็นต้อง ini_set()(AB)
ThiefMaster

3

สำหรับผู้ใช้ Wamp

ไปที่: wamp\apps\phpmyadmin3.3.9\libraries

ภายใต้บรรทัดที่ 536 locate $cfg['ExecTimeLimit'] = 0;

และเปลี่ยนค่าจาก 0 ถึง 6000 เช่น

$cfg['ExecTimeLimit'] = 0;

ถึง

$cfg['ExecTimeLimit'] = 6000;

รีสตาร์ทเซิร์ฟเวอร์ wamp และว้าว

มันใช้งานได้เหมือนเวทมนตร์!


นี่เป็นความผิดจริงควรจะเป็นวิธีอื่น0หมายถึงไม่มีการ จำกัด เวลาดำเนินการ
user919426

2

ใน php.ini คุณต้องตรวจสอบ mysql.connect_timeout ด้วย มีหน้าที่ปิดซ็อกเก็ตและส่งคืน Fatal ตัวอย่างเช่นเปลี่ยนเป็น:

mysql.connect_timeout = 3600

เวลานั้นจะนับเป็นวินาทีเสมอดังนั้นในตัวอย่างของฉันคุณมี 1 ชั่วโมง


2

สิ่งที่ใช้ได้ผลสำหรับฉันใน WAMP คือการแก้ไขไฟล์: \ Wamp64 \ alias \ phpmyadmin.conf, บรรทัด:

 php_admin_value max_execution_time 600
 php_admin_value max_input_time 600

ฉันไม่ต้องเปลี่ยนไฟล์ไลบรารี


1

เป็นไปได้ว่าคุณกำลังใช้ XMAPP เป็นบริการในการรีสตาร์ท XMAPP อย่างถูกต้องคุณต้องเปิดแผงควบคุม XMAPP ยกเลิกการตรวจสอบทั้ง mdodules "Svc" กับ Apache และ MySQL จากนั้นคลิกที่ออกตอนนี้รีสตาร์ท XMAPP และคุณทำเสร็จแล้ว



1

'ZERO' ไม่ จำกัด เวลา

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

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

คุณยังสามารถนำเข้าไฟล์ขนาดใหญ่จาก MySQL เป็นแบบสอบถามหรือแบบสอบถาม PHP ได้

500,000 แถวใช้เวลาเพียง 18 วินาทีในการนำเข้าบนเซิร์ฟเวอร์ภายในโดยใช้วิธีนี้

(สร้างตารางก่อน) - จากนั้น:

LOAD DATA LOCAL INFILE 'Path_To_Your_File.csv' 
INTO TABLE Your_Table_Name 
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\n' 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.