byadmin 發表於 2015-3-12 12:19:39
, 4876人已閱讀 , 0人回應
無論是Wordpress或是其他CMS系統或是任何使用Mysql的動態型網站 , 應該經常會遇到搬家時發現 , 當我們用phpMyAdmin匯出資料庫檔案 .sql 後,往往因為資料量極多,讓匯出的sql檔非常的大,造成無法匯入至下一個主機環境中 !
下面提供三個解決方法 ( 以下方法蒐集至網路 - 個人最常使用第三種方法 )
[1]: 使用BigDump這個第三方服務來協助匯入超大型.sql,(這一種我沒試做)
首先到這裡進入BigDump的官方網頁,下載最新版本的BigDump
解壓縮後會得到一支bigdump.php的檔案, 將此檔案稍微修改參數後上傳至你的網站,
再用瀏覽器讀取它便可以進入BigDump功能頁面了。
修改的內容如下:
$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)
[2]: 第二種則是直接修改/etc/php.ini,(我有試用此方法,但上傳速度很慢。)
打開php.ini後找到以下幾行,修改的內容如下:
440行 max_execution_time = 600 (這裡可用預設或自行修改)
449行 max_input_time = 600 (這裡可用預設或自行修改)
457行 memory_limit = 128M (這裡可用預設或自行修改)
729行 post_max_size = 110M (改成希望可上傳的容量)
878行 upload_max_filesize = 100M (改成改成希望可上傳的容量)
這三個數值的大小,必須是 memory_limit > post_max_size > upload_max_filesize
修改後存檔,重新restart Apache
即可回去phpmyadmin的介面上傳大型的sql檔了!
[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檔就可以輕鬆匯入了!
至於遇到以下超時訊息:- Fatal error: Maximum execution time of 30 seconds exceeded
複製代碼 請將 php.ini 中以及 phpMyAdmin/config.inc.php 或者 phpMyAdmin/libraries/config.default.php- $cfg['ExecTimeLimit'] = 300;
複製代碼 數值調大即可 , 至於要增加多少請依據需求設置即可 .
|
|