phpMyAdmin 預設受限於 PHP upload_max_filesize、post_max_size、memory_limit 設定,無法直接匯入大型 SQL 檔。本文提供兩種解決方案:修改 PHP 設定與利用 phpMyAdmin 上傳目錄功能繞過限制。
php.ini(php --ini 或 phpinfo() 查看路徑);upload_max_filesize = 100M
post_max_size = 100M
memory_limit = 256M
systemctl restart php-fpm 或 service apache2 restart。注意:雲端主機、共享主機通常無權修改 php.ini,需用方案二。
以 phpMyAdmin 3.1.0+ 為例,安裝目錄假設為 E:\wwwroot\phpMyAdmin\:
upload 資料夾,確保 Web 伺服器可寫入;; config.sample.inc.php
$cfg['UploadDir'] = 'upload';
; libraries/config.default.php
$cfg['UploadDir'] = 'upload';
phpMyAdmin/upload/;此方式繞過 HTTP 上傳限制,直接由伺服器端讀取檔案,無大小限制。
.gz、.bz2、.zip 壓縮 SQL,上傳前先壓縮可大幅減小體積;SQLDumpSplitter)分割成小檔批次匯入;mysql -u user -p db_name < huge.sql 最快、最穩定、無大小限制;| 錯誤 | 原因 | 解決 |
|---|---|---|
| 上傳目錄不出現 | 路徑錯誤、權限不足、配置未生效 | 檢查絕對/相對路徑、chmod 755、重啟 Web 服務 |
| 匯入中斷 | max_execution_time 過短 | php.ini 設 max_execution_time = 0 或較大值 |
| 記憶體耗盡 | memory_limit 不足 | 調大 memory_limit 或用分批工具 |
視環境權限選擇方案,命令列永遠是大數據匯入的首選。