解決.sql大檔案無法匯入的問題 phpmyadmin 上傳檔案大小限制的解決方案
用Navicat for MySQL 這個軟體中的批處理任務匯入.sql檔案,經常會出現錯誤亂碼的現象,所以一般用phpmyadmin匯入檔案和匯出檔案不會出現亂碼的現象
但是 使用phpmyadmin匯入.sql檔案時有一個限制,開始是不能大於2M,所以要對php.ini的參數變更,以下是更改方法,更改後需要重新啟動;
一般幾十M的檔案 都沒有問題,我本地測試了100M的.sql檔案都可以匯入,當修改好php.ini的參數後,如果檔案太大,瀏覽器會出現假死的現象,這裡建議還是把記憶體設定調大一點,還要看機器的硬體支援了;
假死就等長一點時間,可以在工作管理員中看到mysql nt的進程使用很大,所以一般是記憶體不足的原因,最後看到
Import has been successfully finished, 2262 queries executed.
這一句就是說明所有的資料都成功匯入了
下面是php.ini的參數設定
1、開啟php.ini。找到 upload_max_filesize 、 memory_limit 、 post_max_size 這三個參數!
(在預設的情況下,phpmyadmin只允許最大的上傳資料為2M,也就是2048KB,而極限的最大使用記憶體memory_limit也僅為128M,Post的最大也為2M)
2、按您的伺服器的實際效能配置進行如下改動:(注意:以下是按我的伺服器效能有硬體設定進行的更改..)
upload_max_filesize = 8M (上傳最大極限設定為8M,這個應該足夠一般的檔案WEB上傳了)
memory_limit = 512M (因為伺服器的記憶體為2GB,所以這裡加到512M不過份吧)
post_max_size = 8M (Post資料最大也設定為8MB,這個跟upload_max一樣)
1、修改phpmyadmin config設定檔中的$cfg[‘ExecTimeLimit’]配置選項,預設值是300,需要修改為0,即沒有時間限制。
2、修改phpmyadmin安裝根目錄下的import頁面中的$memory_limit
說明:首選讀取php.ini設定檔中的記憶體配置選項memory_limit,如果為空白則預設記憶體大小限制為2M,如果沒有限制則記憶體大小限制為10M,你可以結合你php.ini設定檔中的相關資訊修改這段代碼。
3、改完之後,我再重新執行匯入命令後:
Import has been successfully finished, 399 queries executed.
(顯示匯入成功,有多少個請求處理成功…)
(備忘:改完後當你在到phpMyadmin的匯入命令列時,雖然(有時候可能會仍然顯示為:最大限制:2048KB/Max: 2,048KiB);但實際上你已經可以匯入不超過8M的資料庫gzip匯出的備份檔案了! 另,改完php.ini後,別忘了重啟一下web服務或者是伺服器喲!重啟後升效!)