Waktu eksekusi maksimum di phpMyadmin


108

Ketika saya mencoba untuk menjalankan (beberapa) pertanyaan di phpMyadmin saya mendapatkan kesalahan ini

Kesalahan fatal: Waktu eksekusi maksimum 60 detik terlampaui di C: \ xampp \ phpmyadmin \ libraries \ dbi \ mysql.dbi.lib.php pada baris 140

karena saya memiliki tabel yang sangat besar (lebih dari 9 juta catatan)

Saya telah mengedit file C: \ xampp \ php \ php.ini

dan mengubah nilai "max execution time" dari 60 menjadi 1000 kemudian merestart PHP dan masih mengalami error yang sama.

Ada solusi?


1
Anda Harus meminta untuk me-restart server Anda. Setelah Mengubah file config atau ini.
4302836

Jawaban:


196

Saya memiliki kesalahan yang sama, silakan buka

xampp \ phpMyAdmin \ libraries \ config.default.php

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

Anda dapat mengubah '600' ke nilai yang lebih tinggi, seperti '6000'.

Waktu eksekusi maksimum dalam detik adalah (0 tanpa batas).

Ini akan memperbaiki kesalahan Anda.


1
Anda dapat menggunakan pemformatan kode untuk memperjelas apa itu kode dan apa yang bukan :)
rentang

24
Cukup jelas (di header file) bahwa Anda tidak boleh mengedit file ini. Sebagai gantinya, Anda harus mengedit config.inc.php, menambahkan baris ini, seperti yang dikatakan di jawaban lain
dsnunez

1
Cek jawaban saya di bawah ini. Itulah cara untuk pergi;)
M_R_K

3
Menambahkan ini ke config.inc.phptidak melakukan pekerjaan itu untuk saya. Memodifikasi config.default.phpmembantu dan berhasil.
Spurious

Untuk jalur wamp adalah wamp64\apps\phpmyadmin4.6.4\libraries\config.default.phpATAU Anda dapat menemukan jalur direktori phpmyadmin Anda dengan mengklik wamp tray icon > Apache > Alias Directoriesdan mengedit phpmyadmin. Juga seperti yang disebutkan oleh dsnunez, lebih baik mengedit config.inc.php--edit-- pengeditan config.inc.phptidak berhasil untuk saya
AbsarAkram

107

Untuk versi Xampp di Windows

Tambahkan baris ini ke xampp \ phpmyadmin \ config.inc.php

$cfg['ExecTimeLimit'] = 6000;

Dan Ubah xampp \ php \ php.ini menjadi

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

Dan ubah xampp \ mysql \ bin \ my.ini

max_allowed_packet = 200M

1
Saya mengalami masalah yang sama persis kecuali dengan kumpulan data yang jauh lebih kecil (~ 120 ribu baris) - jawaban Anda pasti membuat segalanya jauh lebih baik :).
Rob

Saya langsung mendapatkan batas waktu skrip untuk xampp untuk Windows saat menekan Jelajahi di atas meja ~ 130mb
Matthew Lock

Sayangnya $cfg['ExecTimeLimit'] = 6000;tampaknya tidak berpengaruh apa-apa pada instalasi saya. Saya lebih suka mengaturnya secara lokal daripada di php.ini yang berlaku untuk seluruh server, tapi mungkin itu satu-satunya pilihan.
Simon East

1
Tidak yakin apa yang dilakukan semua ini, tetapi Anda mendapatkan suara saya :-)
nawissor

13

Saya menghadapi masalah yang sama saat melakukan curl. Saya melakukannya dengan benar ketika saya mengubah yang berikut di php.inifile:

max_execution_time = 1000 ;

dan juga

max_input_time = 1000 ;

Mungkin masalah Anda harus diselesaikan dengan membuat dua perubahan di atas dan memulai ulang server apache.

Bahkan setelah mengubah masalah di atas tetap ada dan jika Anda pikir itu karena beberapa operasi database menggunakan mysql Anda dapat mencoba mengubah ini juga:

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

Semua ini harus diubah dalam file php.ini dan server apache harus direstart untuk melihat perubahan.


7

Perubahan Anda harus berhasil. Namun, ada kemungkinan beberapa file konfigurasi php.ini dengan tumpukan 'xampp'. Cobalah untuk mengidentifikasi apakah ada php.ini khusus 'apache' atau tidak. Salah satu lokasi potensial adalah:

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


1
di xampp saya file itu masuk C:\xampp\php\php.inidan goto baris nomor 442 (kira-kira - beberapa waktu nomor baris itu akan berubah setelah edit manual) max_execution_time = 1000 tetapi ini tidak berfungsi untuk saya. Kemudian saya akan mencoba ini di C: \ xampp \ phpMyAdmin \ config.inc.php$cfg['Servers'][$i]['bs_temp_blob_timeout'] = 1200;
Elshan

5

Mengubah php.iniaplikasi web membutuhkan restart Apache.

Anda harus memverifikasi bahwa perubahan terjadi dengan menjalankan skrip PHP yang menjalankan fungsi tersebut phpinfo(). Output dari fungsi itu akan memberi tahu Anda banyak parameter PHP, termasuk nilai batas waktu.

Anda mungkin juga telah mengubah salinan php.inifile yang tidak sama dengan yang digunakan oleh Apache.


5

ini_set('max_execution_time', 0);atau buat nama file bernama php.inidan masukkan baris pertama max_execution_time=0lalu simpan dan letakkan file tersebut di folder root aplikasi Anda.

Itu dia. Semoga berhasil.


3
Ada set_time_limit()fungsinya. Tidak perlu (ab) menggunakan ini_set().
ThiefMaster

3

Nah untuk Pengguna Wamp,

Pergi ke: wamp\apps\phpmyadmin3.3.9\libraries

Di bawah baris 536, locate $cfg['ExecTimeLimit'] = 0;

dan ubah nilainya dari 0 menjadi 6000. mis

$cfg['ExecTimeLimit'] = 0;

Untuk

$cfg['ExecTimeLimit'] = 6000;

Mulai ulang server wamp dan Fiuh.

Ini bekerja seperti sihir!


Ini sebenarnya salah, harus sebaliknya 0berarti tidak ada batasan waktu eksekusi
user919426

2

Di php.ini Anda juga harus memeriksa mysql.connect_timeout. Itu bertanggung jawab untuk menutup soket dan mengembalikan Fatal. Jadi, misalnya, ubah menjadi:

mysql.connect_timeout = 3600

Waktu itu akan selalu dihitung dalam detik, jadi dalam contoh saya, Anda punya 1 jam.


2

Apa yang berhasil untuk saya di WAMP adalah memodifikasi file: \ Wamp64 \ alias \ phpmyadmin.conf, baris:

 php_admin_value max_execution_time 600
 php_admin_value max_input_time 600

Saya tidak perlu mengubah file perpustakaan.


1

Mungkin Anda menggunakan XMAPP sebagai layanan, untuk me-restart XMAPP dengan benar, Anda harus membuka panel kontrol XMAPP hapus centang kedua mdodules "Svc" terhadap Apache dan MySQL. Kemudian klik keluar, sekarang mulai ulang XMAPP dan Anda selesai.



1

'NOL' untuk waktu yang tidak terbatas.

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

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

Anda juga dapat mengimpor file besar langsung dari MySQL sebagai kueri atau kueri PHP.

500.000 baris hanya membutuhkan waktu 18 detik untuk diimpor ke server lokal, menggunakan metode ini.

(buat tabel dulu) - lalu:

LOAD DATA LOCAL INFILE 'Path_To_Your_File.csv' 
INTO TABLE Your_Table_Name 
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\n' 
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.