Board logo

標題: [SQL與PHP] phpMyAdmin 匯入 sql 出現「你正嘗試上載大容量檔案,請查看此文件如何略過此限制」的解決方案 [打印本頁]

作者: gswdkimo    時間: 2011-7-19 09:00     標題: phpMyAdmin 匯入 sql 出現「你正嘗試上載大容量檔案,請查看此文件如何略過此限制」的解決方案

好不容易終於部署好 php 環境,
打開 phpMyAdmin 建立一個新資料庫,開開心心正要匯入 sql 檔,上面寫預設值只有2MB~
手上的 sql 檔遠遠超過2MB,如果不想理它,硬是給它匯入的話,
就會出現「你正嘗試上載大容量檔案,請查看此文件如何略過此限制」這串字~

解決方法有2種:

方法1的執行步驟如下:

謝謝網友的教學文,受益良多喔~:)


各預設值的設定範例:

1. max_execution_time
Script執行時間上限(單位:秒)
把數字改成 max_execution_time = 300


2. max_input_time

Script處理資料時間上限(單位:秒)
把數字改成  max_input_time = 300


3. memory_limit
系統記憶體(注意,這個的值一定要設比下面兩項的值都大)
把數字改成 memory_limit = 800M


4. post_max_size
使用表單的file欄位時是用POST傳值
這個可設定POST發送時的容量
把數字改成 post_max_size = 200M


5. upload_max_filesize
單次上傳檔案容量
把數字改成 upload_max_filesize = 200M


6. default_socket_timeout
Socket無回應斷線時間(單位:秒)
把數字改成 default_socket_timeout = 300


7. mysql.connect_timeout
無回應斷線時間(單位:秒;-1代表不斷線一直等)
把數字改成 mysql.connect_timeout = -1
作者: gswdkimo    時間: 2011-7-19 09:01

MySql檔案過大的處理方法



sql上傳資料庫會受到2048kb的限制,

要解決這個問題我使用了2個方法:


(一) 分割 sql :

1. 先下載免費的sql 分割軟體 SQLDumpSplitter.exe

(下載:載點1載點2載點3)

2. 選2048kb為單位開始分割

3. 分割完成後,由_DataStructure.sql 最先開始上傳,

接著依照數字遞增上傳至資料庫( _1.sql、_2.sql、_3.sql 以此類推)。


---------------------------------------------------------------------------------------------

如果分割sql 無法解決問題,繼續至第2個方法。


(二) 更改phpMyAdmin 組態只允許 2MB 的最大上傳限制,修改php.ini中數值:



(1)在電腦中搜尋php.ini,進入修改。





以下為幾個關鍵設定:


‧file_uploads 項目是否設定為On(預設)。
‧upload_max_filesize 為上傳檔案的最大限制,預設為2MB(2M)。
‧post_max_size POST的資料量限制,預設為8M。‧memory_limit 記憶體限制,預設為8M。


***這3個數值的大小,必須是 memory_limit > post_max_size > upload_max_filesize .



‧max_execution_time 每個PHP頁面運行的最大時間值(秒),預設30秒。

‧max_input_time 每個PHP頁面接收資料所需的最大時間,預設60秒 。




***調這2個time數值是為了上傳sql 時不會因為時間太久而被停止。






修改完這些數值後重新啟動Apache


------------------------------------------------------------------------------------


我的case為:上傳400M的sql 到server。




我先試著將400M的sql 分割成較小的檔:


將 400M 的sql 以100M 為單位分割

最後分割成4個檔案:x_1.sql、x_2.sql、x_3.sql、xx_1.sql、_DataStructure.sql。


但是無法解決我的問題。





於是我修改 php.ini:

upload_max_filesize = 100M;


post_max_size = 100M;

max_execution_time = 6000;


max_input_time = 6000;


memory_limit = 120M;  



然後重新啟動 Apache

最後依照 DataStructure.sql 、x_1.sql、x_2.sql、x_3.sql、x_4.sql 的順序上傳。

(其實只要修改php.ini 直接上傳未分割原檔就可以了~

但割都割了就這樣囉~)

(2)修改phpmyadmin配置文件
  在完成php.ini的相關配置後,還需要修改phpmyadmin配置。
  1、修改phpmyadmin config配置文件中的$cfg[‘ExecTimeLimit’]配置選項,默認值是300,需要修改爲0,即沒有時間限制。
  2、修改phpmyadmin安裝根目錄下的import頁面中的$memory_limit
  
  說明:首選讀取php.ini配置文件中的內存配置選項memory_limit,如果爲空則默認內存大小限制爲2M,如果沒有限制則內存大小限制爲10M,你可以結合你php.ini配置文件中的相關信息修改這段代碼。
  至此,經過修改php.ini配置文件中的文件上傳配置選項以及phpmyadmin配置文件後,即可解決phpmyadmin上傳文件大小限制問題,從而實現phpmyadmin上傳大文件功能。
作者: gswdkimo    時間: 2011-9-13 10:37     標題: 方法三:直接用dos的方式匯入資料庫

windows  dos 匯入資料庫檔

先移動到AppServ\MySQL\bin路徑下:
C:\Users\yunda>cd C:\AppServ\MySQL\bin


登入資料庫(-u帳號 -p密碼)
C:\AppServ\MySQL\bin>mysql.exe -uroot -p123456

/mysql/bin/mysql -uroot -p123456 SYN < SYN.sql

出現登入訊息後
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.0.51b-community-nt-log MySQL Community Edition (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
選擇資料庫
mysql> use SYN_KH
Database changed

選擇資料庫路徑:
mysql> \. C:\KH.sql
Query OK, 186 rows affected (0.02 sec)
Records: 186  Duplicates: 0  Warnings: 0

Query OK, 168 rows affected (0.03 sec)
Records: 168  Duplicates: 0  Warnings: 0

Query OK, 182 rows affected (0.03 sec)
Records: 182  Duplicates: 0  Warnings: 0

Query OK, 182 rows affected (0.03 sec)
Records: 182  Duplicates: 0  Warnings: 0

Query OK, 168 rows affected (0.03 sec)
Records: 168  Duplicates: 0  Warnings: 0

Query OK, 182 rows affected (0.03 sec)
Records: 182  Duplicates: 0  Warnings: 0

Query OK, 180 rows affected (0.03 sec)
Records: 180  Duplicates: 0  Warnings: 0

Query OK, 192 rows affected (0.03 sec)
Records: 192  Duplicates: 0  Warnings: 0

Query OK, 181 rows affected (0.03 sec)
Records: 181  Duplicates: 0  Warnings: 0

Query OK, 171 rows affected (0.03 sec)
Records: 171  Duplicates: 0  Warnings: 0

Query OK, 161 rows affected (0.03 sec)
Records: 161  Duplicates: 0  Warnings: 0

Query OK, 165 rows affected (0.03 sec)
Records: 165  Duplicates: 0  Warnings: 0

Query OK, 161 rows affected (0.03 sec)
Records: 161  Duplicates: 0  Warnings: 0

Query OK, 165 rows affected (0.02 sec)
Records: 165  Duplicates: 0  Warnings: 0

Query OK, 168 rows affected (0.03 sec)
Records: 168  Duplicates: 0  Warnings: 0

Query OK, 174 rows affected (0.03 sec)
Records: 174  Duplicates: 0  Warnings: 0

Query OK, 0 rows affected (0.01 sec)

Query OK, 103 rows affected (0.01 sec)
Records: 103  Duplicates: 0  Warnings: 0

Query OK, 0 rows affected (0.01 sec)

Query OK, 103 rows affected (0.00 sec)
Records: 103  Duplicates: 0  Warnings: 0

Query OK, 0 rows affected (0.01 sec)

Query OK, 0 rows affected (0.03 sec)


離開
mysql> exit
作者: gswdkimo    時間: 2012-1-31 13:57

補上UBUNTU版本
可以使用  phpinfo.php 去找到  php.ini 的位置
位置:
/etc/php5/apache2/php.ini

改好後 apache 要重啟
sudo /etc/init.d/apache2 restart




歡迎光臨 資訊家電班NO7 (http://imce07.freehostia.com/forums/) Powered by Discuz! 7.2