Thời gian thực thi tối đa trong phpMyadmin


108

Khi tôi cố gắng thực thi (một số) truy vấn trong phpMyadmin, tôi gặp lỗi này

Lỗi nghiêm trọng: Đã vượt quá thời gian thực thi tối đa 60 giây trong C: \ xampp \ phpmyadmin \ thư viện \ dbi \ mysql.dbi.lib.php trên dòng 140

bởi vì tôi có một bảng rất lớn (hơn 9 triệu bản ghi)

Tôi đã chỉnh sửa tệp C: \ xampp \ php \ php.ini

và thay đổi giá trị "thời gian thực thi tối đa" từ 60 thành 1000 sau đó khởi động lại PHP và vẫn gặp lỗi tương tự.

Bất kì giải pháp nào?


1
Bạn phải yêu cầu khởi động lại máy chủ của mình. Sau khi thay đổi tệp cấu hình hoặc ini.
4302836,

Câu trả lời:


196

Tôi cũng bị lỗi tương tự, vui lòng truy cập

xampp \ phpMyAdmin \ thư viện \ config.default.php

Tìm kiếm : $cfg['ExecTimeLimit'] = 600;

Bạn có thể thay đổi '600' thành bất kỳ giá trị nào cao hơn, chẳng hạn như '6000'.

Thời gian thực hiện tối đa tính bằng giây là (0 cho không giới hạn).

Điều này sẽ sửa chữa lỗi của bạn.


1
Bạn có thể sử dụng định dạng mã để làm rõ đâu là mã và đâu là mã :)
span

24
Rõ ràng là (trong tiêu đề của tệp) rằng bạn không nên chỉnh sửa tệp này. Thay vào đó, bạn nên chỉnh sửa config.inc.php, thêm dòng này, như nó nói trong câu trả lời khác
dsnunez

1
Kiểm tra câu trả lời của tôi bên dưới. Đó là cách để đi;)
M_R_K

3
Thêm điều này vào config.inc.phpkhông làm công việc cho tôi. Sửa đổi được config.default.phpgiúp đỡ và hoạt động.
Spurious

Đối với đường dẫn wamp là wamp64\apps\phpmyadmin4.6.4\libraries\config.default.phpHOẶC bạn có thể tìm đường dẫn của thư mục phpmyadmin của mình bằng cách nhấp wamp tray icon > Apache > Alias Directoriesvà chỉnh sửa phpmyadmin. Cũng như đã đề cập bởi dsnunez, nó tốt hơn để chỉnh sửa config.inc.php--edit-- chỉnh sửa config.inc.phpkhông làm việc cho tôi
AbsarAkram

107

Đối với phiên bản Xampp trên Windows

Thêm dòng này vào xampp \ phpmyadmin \ config.inc.php

$cfg['ExecTimeLimit'] = 6000;

Và thay đổi xampp \ php \ php.ini thành

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

Và thay đổi xampp \ mysql \ bin \ my.ini

max_allowed_packet = 200M

1
Tôi đã gặp những vấn đề giống hệt nhau ngoại trừ với một tập dữ liệu nhỏ hơn nhiều (~ 120k hàng) - câu trả lời của bạn chắc chắn đã làm mọi thứ tốt hơn nhiều :).
Rob

Tôi nhận được thời gian chờ tập lệnh cho xampp dành cho Windows ngay lập tức khi nhấn Duyệt trên bảng ~ 130mb
Matthew Lock

Đáng buồn thay, $cfg['ExecTimeLimit'] = 6000;dường như không ảnh hưởng đến cài đặt của tôi. Tôi muốn đặt nó cục bộ hơn là trong php.ini áp dụng cho toàn bộ máy chủ, nhưng có lẽ đó là lựa chọn duy nhất.
Simon East,

1
Không chắc tất cả những gì xảy ra, nhưng bạn nhận được phiếu bầu của tôi :-)
nawissor

13

Tôi phải đối mặt với vấn đề tương tự khi thực hiện uốn tóc. Tôi đã hiểu đúng khi tôi thay đổi nội dung sau trong php.initệp:

max_execution_time = 1000 ;

và cả

max_input_time = 1000 ;

Có lẽ vấn đề của bạn sẽ được giải quyết bằng cách thực hiện hai thay đổi trên và khởi động lại máy chủ apache.

Ngay cả sau khi thay đổi vấn đề ở trên, sự cố vẫn tiếp diễn và nếu bạn nghĩ rằng đó là do một số hoạt động cơ sở dữ liệu bằng cách sử dụng mysql, bạn có thể thử thay đổi điều này:

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

Tất cả điều này sẽ được thay đổi trong tệp php.ini và máy chủ apache nên được khởi động lại để xem các thay đổi.


7

Thay đổi của bạn sẽ hoạt động. Tuy nhiên, có một số tệp cấu hình php.ini tiềm ẩn với ngăn xếp 'xampp'. Cố gắng xác định xem có một php.ini cụ thể 'apache' hay không. Một vị trí tiềm năng là:

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


1
trên xampp của tôi tệp đó trong C:\xampp\php\php.inivà dòng goto số 442 (khoảng - một lúc nào đó số dòng đó sẽ được thay đổi sau khi chỉnh sửa thủ công) max_execution_time = 1000 nhưng điều này không hiệu quả với tôi. Sau đó, tôi sẽ thử điều này trên C: \ xampp \ phpMyAdmin \ config.inc.php$cfg['Servers'][$i]['bs_temp_blob_timeout'] = 1200;
Elshan

5

Thay đổi php.iniứng dụng web yêu cầu khởi động lại Apache.

Bạn nên xác minh rằng thay đổi đã diễn ra bằng cách chạy một tập lệnh PHP thực thi chức năng phpinfo(). Đầu ra của hàm đó sẽ cho bạn biết rất nhiều tham số PHP, bao gồm cả giá trị thời gian chờ.

Bạn cũng có thể đã thay đổi một bản sao của php.initệp đó không phải là tệp được Apache sử dụng.


5

ini_set('max_execution_time', 0);hoặc tạo tên tệp được gọi php.inivà nhập dòng đầu tiên, max_execution_time=0sau đó lưu nó và đặt tệp vào thư mục gốc của ứng dụng của bạn.

Đó là nó. Chúc may mắn.


3
Có một set_time_limit()chức năng. Không cần (ab) sử dụng ini_set().
ThiefMaster

3

Tốt cho người dùng Wamp,

Đi đến: wamp\apps\phpmyadmin3.3.9\libraries

Dưới dòng 536, locate $cfg['ExecTimeLimit'] = 0;

và thay đổi giá trị từ 0 thành 6000. ví dụ:

$cfg['ExecTimeLimit'] = 0;

Đến

$cfg['ExecTimeLimit'] = 6000;

Khởi động lại máy chủ wamp và phew.

Nó hoạt động như một phép thuật!


Đây thực sự là sai, nên đường vòng khác 0có nghĩa là không có thời gian thực hiện hạn
user919426

2

Trong php.ini, bạn cũng phải kiểm tra mysql.connect_timeout. Nó chịu trách nhiệm đóng ổ cắm và trả lại Fatal. Vì vậy, ví dụ, hãy thay đổi nó thành:

mysql.connect_timeout = 3600

Thời gian đó sẽ luôn được tính bằng giây, vì vậy trong ví dụ của tôi, bạn có 1 giờ.


2

Điều làm việc với tôi trên WAMP là sửa đổi tệp: \ Wamp64 \ alias \ phpmyadmin.conf, dòng:

 php_admin_value max_execution_time 600
 php_admin_value max_input_time 600

Tôi không phải thay đổi tệp thư viện.


1

Rất có thể bạn đang sử dụng XMAPP làm dịch vụ, để khởi động lại XMAPP đúng cách, bạn phải mở bảng điều khiển XMAPP và bỏ chọn cả hai mdodules "Svc" chống lại Apache và MySQL. Sau đó nhấp vào thoát, bây giờ khởi động lại XMAPP và bạn đã hoàn tất.



1

'ZERO' không giới hạn thời gian.

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

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

Bạn cũng có thể nhập tệp lớn ngay từ MySQL dưới dạng truy vấn hoặc truy vấn PHP.

500.000 hàng chỉ mất 18 giây để tôi nhập trên máy chủ cục bộ bằng phương pháp này.

(tạo bảng trước) - sau đó:

LOAD DATA LOCAL INFILE 'Path_To_Your_File.csv' 
INTO TABLE Your_Table_Name 
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\n' 
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.