XAMPP'de phpMyAdmin kullanarak büyük bir .sql veri dosyasını içe aktarmaya çalışıyorum. Ancak bu çok zaman alıyor ve sürekli
Önemli hata: Maksimum yürütme süresi 300 saniye aşıldı in C:\xampp\phpMyAdmin\libraries\dbi\DBIMysqli.class.php on line 285
Ve dosya yaklaşık 1,2 milyon satır uzunluğunda.
Dosya yaklaşık 30MB büyüklüğünde, yani o kadar da büyük değil. Neden bu kadar uzun sürdüğünü gerçekten anlamıyorum.
;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;
; Maximum execution time of each script, in seconds
; http://php.net/max-execution-time
; Note: This directive is hardcoded to 0 for the CLI SAPI
max_execution_time=30000
; Maximum amount of time each script may spend parsing request data. It's a good
; idea to limit this time on productions servers in order to eliminate unexpectedly
; long running scripts.
; Note: This directive is hardcoded to -1 for the CLI SAPI
; Default Value: -1 (Unlimited)
; Development Value: 60 (60 seconds)
; Production Value: 60 (60 seconds)
; http://php.net/max-input-time
max_input_time=60
; Maximum input variable nesting level
; http://php.net/max-input-nesting-level
;max_input_nesting_level = 64
; How many GET/POST/COOKIE input variables may be accepted
; max_input_vars = 1000
; Maximum amount of memory a script may consume (128MB)
; http://php.net/memory-limit
memory_limit=200M
Xampp'de php.ini için yapılandırma dosyası, bazı nedenlerden dolayı hala alıyorum
Önemli hata: C:\xampp\phpMyAdmin\libraries\dbi\DBIMysqli.class.php içinde 285. satırda 300 saniyelik maksimum yürütme süresi aşıldı.
Bu bir .sql dosyası mı yoksa sıkıştırılmış mı (.zip, .gz, vb.)? Sıkıştırılmış biçimler bazen daha fazla PHP kaynağı gerektirir, bu nedenle yüklemeden önce sıkıştırmayı açmayı deneyebilirsiniz.
Ancak, deneyebileceğiniz başka yöntemler de vardır. Komut satırı erişiminiz varsa, dosyayı yükleyin ve komut satırı istemcisi mysql
ile içe aktarın (bir kez mysql>
isteminde, use databasename;
sonra source file.sql
).
Aksi takdirde phpMyAdmin "UploadDir" özelliğini kullanarak dosyayı sunucuya koyabilir ve yerel makinenizden yüklemek zorunda kalmadan phpMyAdmin içinde görünmesini sağlayabilirsiniz.
Bu bağlantı UploadDir kullanımı hakkında bilgi içerir ve bu bağlantı daha fazla ipucu ve yöntem içerir.
Limiti artırabilirsiniz:
ini_set('max_execution_time', 3000);
(Bu komut dosyasının da yüksek bellek kullanımına neden olabileceğini unutmayın, bu nedenle muhtemelen bunu da artırmanız gerekir)
Diğer olası çözüm: Sql dosyanızı parçalara ayırın ve parçalar halinde işleyin. Bunun büyük bir SQL sorgusu olmadığını varsayıyorum, değil mi?
Güncelleme: @Isaac'ın belirttiği gibi, bu PHPMyAdmin ile ilgilidir. Bu durumda php.ini dosyasında max_execution_timeout
ayarını yapın. (Konum ortamınıza bağlıdır)
Aşağıdakiler size yardımcı olabilir:
ini_set('max_execution_time', 100000);
Ve mysql'inizde - max_allowed_packet=100M
sorguların çok uzun olduğu bazı durumlarda sql de hata üretir ve "MySQL sunucusu gitti";
Değerleri ihtiyacınız olan şekilde değiştirin.