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?

ahmed
sumber
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.

pengguna1900623
sumber
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
M_R_K
sumber
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.

Sony Mathew
sumber
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

Brian
sumber
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.

Bill Karwin
sumber
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.

Karthikeyan
sumber
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!

Olasunkanmi
sumber
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.

andymnc
sumber
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.

Casso
sumber
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.

Jamal
sumber
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' 
KDawg
sumber