phpmyadmin 無法正常匯入上傳大容量SQL檔案問題解決方法

最近放部落格的主機出了些問題,不得以小編只好花點時間將每個站台搬家到新的主機上,其中最重要的部分就是將各個 WordPress 資料庫備份檔案 .sql 搬家(匯入)到新的主機上時發現了個大問題「你上傳的檔案過大」 …

平台:xampp V3.2.2
phpMyAdmin:4.7.5
資料庫:10.1.26-MariaDB

OK,在 MySQL 中匯入資料庫的方式有很多種,最常用的方式就是使用 phpMyAdmin 管理程式的匯入介面來上傳、匯入。不過如果你的「.sql」檔案超大的話,則很容易遇到伺服器的執行時間或檔案大小的限制,仔細看你在做匯入上傳時旁邊會有個小小備註「上限: 2,048 KB」。

應是要上傳太大的「.sql」檔就是送你「你上傳的檔案過大」錯誤訊息,使得無法順利上傳、匯入到資料庫中。

網路上大概有四種解決方法,小編用了前練兩個方式分享給你們:
※ phpMyAdmin 匯入大容量資料庫(超過 2MB 限制)
1. 去修改 XAMPP 裡面的 php.ini 組態檔案,到 XAMPP Control Panel 對 Apache Module 旁 Actions 功能按鈕選擇「Config」>「PHP (php.ini)」。

檢查以下項目並修改其設定值:
file_uploads:是否設定為 On (這是預設值)。
upload_max_filesize:是上傳檔案的最大限制,預設 2M,可依需求調整。
post_max_size:是POST的資料量限制,預設 8M,可依需求調整。
memory_limit – 記憶體限制,預設 8M,可依需求調整。
調整時要注意的地方,必須是:
memory_limit > post_max_size > upload_max_filesize

還有另外需調整以下項目,這是為了防止上傳 .sql 檔時不會因為時間太久被停止而調整:
max_execution_time:每個php頁面運行的最大時間值(秒),預設30秒。
max_input_time:每個php頁面接收資料所需的最大時間,預設60秒 。

小編修改完如下數值後,請重新啟動 Apache 即可匯入大容量 .sql 檔囉。

1
2
3
4
5
upload_max_filesize = 100M;
post_max_size = 100M;
max_execution_time = 6000;
max_input_time = 6000;
memory_limit = 120M;

然後到 XAMPP Control Panel 對 Apache Module 旁 Actions 功能按鈕選擇「Stop」>「Start」,重新 Restart httpd Service,在進去一次 phpMyAdmin 的上傳頁面時,就可以看到可上傳的限制放寬了,也可以正常上傳了。

※ 用指令來匯入,小編發現這個速度更快
1. 進入命令提是字元。
2. 進入XAMPP 安裝路徑/mysql/bin>mysql.exe -u 帳號 -p –default-character-set=utf8 資料庫名稱 < “SQL備份檔.sql”。
如小編:c:\xampp\mysql\bin>mysql -u root -p ABC < c:\backup\ABC.sql
3. 輸入資料庫密碼。
4. 跑完回到XAMPP 安裝路徑/mysql/bin/ > 提示字元即完成匯入作業。

下面的兩個方法,就沒有用過,轉貼過來參考,順便做個筆記以後可能會用到。
※ 用 BigDump 工具來匯入
1. 請先至網址下載此工具:http://www.ozerov.de/bigdump/
2. 用文字編輯器開啟 bigdump.php 後,分別找到下面的設定值並輸入以下資訊,以便讓 bigdump 可以連線資料庫。
$db_server = ‘localhost;
$db_name = ‘資料庫名稱’;
$db_username = ‘使用者名稱’;
$db_password = ‘使用者密碼’;
其中「$db_server」一般來說填「localhost」即可,如果你的資料庫放在不同主機或網址的話,請改成實際位置。
2. 在「$db_connection_charset = ‘utf8’;」設定語系的地方,確認輸入值為「utf8」,否則中文會變成亂碼或問號。
3. 在「$filenam」中填入你的「.sql」資料庫檔案。
4. 如果你的伺服器在短時間內塞太多資料會出問題的話,可以彈性調整下面兩個數值,按實際需要修改,避免伺服器負擔太大。(一般來說不用調整,讓他維持預設值也可以)「$linespersession = 3000;」:設定每次還原幾筆資料。
「$delaypersession = 5000;」:每次間隔休息時間(千分之1秒),設定為 5000 則休息 5 秒鐘。
5. 修改後存檔,接著請將 bigdump.php 以及剛剛匯出的 SQL 檔利用 FTP 上傳到網頁根目錄中。
6. 開啟瀏覽器,輸入「http://網址/bigdump.php」,他會自動找出 SQL 檔出來,您直接按「Start Import」連結即可開始進行匯入。
7. 當畫面最下方出現「Congratulations: End of file reached, assuming OK」的訊息時,表示資料庫已經順利匯入完成,你可以開啟你的網站測試一下是否已經恢復正常。

※  建立 ImportSQLFile 與 ExportSQLFile 資料夾來匯入
1. 修改 phpMyAdmin 的 config.inc.php 檔,到 XAMPP Control Panel 對 Apache Module 旁 Actions 功能按鈕選擇「Config」>「phpMyAdmin (config.inc.php)」。

2. 打開後找到下列兩行或自行加入:
$cfg[‘UploadDir’] = ‘ImportSQLFile’;  ←上傳資料夾的名稱
$cfg[‘SaveDir’] = ‘ExportSQLFile’;       ←匯出資料夾的名稱
3. 然後在 phpmyadmin 目錄中建立 ImportSQLFile 與 ExportSQLFile 資料夾,一個用來上傳大容量的sql檔,一個用來匯出sql檔。(權限記得要給)
4. 把需要匯入的大容量 .sql 檔使上傳到 ImportSQLFile 資料夾中,再回到 phpmyadmin 載入介面,就會發現在載入檔案的地方多出 web server upload directory 的功能。
5. 需要選擇剛剛傳進去的SQL檔就可以輕鬆匯入了!

 

 

 

發表留言

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料