2012-06-27 96 views
0

我想通過phpMyAdmin導出一個大型數據庫。我吉普得到一個錯誤,腳本停止,因爲最大執行時間達到600秒(或類似的東西)。我試圖在php.ini中將max_execution_time設置爲0和-1。我可以在phpinfo()中看到該更改生效,但我仍然收到錯誤消息。另一件事情是原來的(在我將它改爲0之前),它也不是600。它是180!這600套在哪裏?php最大執行時間忽略php.ini

+0

你重新啓動apache(只是拋出主意)? – Leri

+0

可能是您的網絡服務器上的超時設置 –

+1

您確定您正在更改正確的php.ini嗎? –

回答

3

查看是否手動設置某處。假設你在UNIX類型的平臺上:

find /path/to/root/of/phpmyadmin -name "*.php" -print0 | xargs -0 grep "max_execution_time" 
-1

PHP通過使用以下三個指令上的所有PHP腳本默認地方資源限制: =>max_execution_time:每個腳本的最大執行時間,以秒(默認30秒)

=>max_input_time:最大量時間每個腳本可能花費解析請求數據(60秒)

=>memory_limit:腳本可能消耗的最大內存量(默認8MB)

PHP腳本已超時可能是因爲資源限制。所有你需要做的就是設置一個新的資源限制,以便腳本能夠被執行。

如果這也不起作用,您可以使用set_time_limit(N)函數來設置它,該函數以秒爲單位設置時間限制。

1

您的Web服務器可以有其他超時配置,也可能會中斷PHP執行。 Apache有一個Timeout指令,IIS有一個CGI超時函數。有關具體詳情,請參閱您的Web服務器文檔

請勿使用phpMyAdmin導入大文件。嘗試使用mysql CLI導入數據庫的轉儲。 SQL文件傳輸到服務器,並使用PHP腳本像了shell_exec或系統

的mysql --user =用戶--password =密碼數據庫< database_dump.sql在服務器上執行以下。

當然,數據庫必須存在,並且您提供的用戶應具有更新數據庫所需的特權。