2010年7月2日 星期五

[PHP]檔案太大無法匯入phpMyAdmin

(1) 修改php.ini法:
打開php.ini後,修改以下幾行:
max_execution_time = 600 (這裡可用預設或自行修改)
max_input_time = 600 (這裡可用預設或自行修改)
memory_limit = 128M (這裡可用預設或自行修改)
post_max_size = 72M (改成希望可上傳的容量)
upload_max_filesize = 64M (改成改成希望可上傳的容量)
重點是:
這三個數值的大小,必須是 memory_limit > post_max_size > upload_max_filesize
修改後存檔,重新 restart Apache,即可進入phpmyadmin的介面上傳大資料檔了!

(2)使用BigDump這個第三方服務來協助匯入超大檔案
修改bigdump.php
$db_server = ‘MySql所在位置的主機IP‘ ;
$db_name = ‘資料庫名稱’;
$db_username = ‘該資料庫的owner帳號名稱’;
$db_password = ‘owner的密碼’;
$linespersession = 3000; #(每次寫入的資料數量,內定值是3000筆)
$delaypersession = 0; #(每次寫入資料的間隔時間,預設為0也就是無間隔,若你擔心主機負荷過重出現問題,則可以自訂間隔時間,例如1秒就是1000,5秒就是5000)
$db_connection_charset = "; #(指定資料庫的編碼方式,若不輸入則使用系統預設,以大部分WP的用戶來說,都是使用utf-8)

(3)修改phpMyAdmin資料夾中的config.inc.php檔
打開後找到下列兩行或自行加入:
$cfg['UploadDir'] = 'ImportSQLFile'; ←上傳資料夾的名稱
$cfg['SaveDir'] = 'ExportSQLFile'; ←匯出資料夾的名稱
然後在phpmyadmin中建立ImportSQLFile與ExportSQLFile資料夾,
一個用來上傳大容量的sql檔,一個用來匯出sql檔。
把需要匯入的大容量sql檔以winscp上傳到ImportSQLFile資料夾中,
再回到phpmyadmin載入介面,就會發現在載入檔案的地方多出web server upload directory的功能。此時僅需要選擇剛剛傳進去的SQL檔就可以輕鬆匯入了!

沒有留言: