在使用phpMyAdmin的時候經常用到數據的導入和導出(Export/Import),但是在導入大數據的時候由於php上傳文件的限制和腳本響應時間的限制,導致phpMyAdmin無法導入大數據,對於導入大數據到mysql的,我以前使用過使用SHELL的方式導入幾百兆的文件到mySQL數據庫(原文),但是國內的虛擬主機絕大多數不像DreamHost一樣開放SHELL權限,而且多數都是Windows Server服務器。我們自己又沒有權限修改php.ini文件,對於這種情況我們可以使用phpMyAdmin提供的$cfg['UploadDir']方法,導入服務器上存在的.sql文件。
第一:
修改PHP.ini
file_uploads on 是否允許通過HTTP上傳文件的開關。默認為ON即是開
upload_tmp_dir 文件上傳至服務器上存儲臨時文件的地方,如果沒指定就會用系統默認的臨時文件夾
upload_max_filesize 20m 望文生意,即允許上傳文件大小的最大值。默認為2M
post_max_size 30m 指通過表單POST給PHP的所能接收的最大值,包括表單裡的所有值。默認為8M
修改後一定要重新啟動電腦或者重新啟動php
其次,找到phpMyAdmin的目錄,找到根目錄下的config.inc.php文件,然後找到$cfg['UploadDir'] ,通過注釋(Directories for saving/loading files from server)就可以看出這是用來導入服務器上的SQL文件的方法。相對的就是$cfg['SaveDir'] ,顧名思義就是把導出的SQL文件保存在服務器上的目錄中。
修改這個參數
$cfg['UploadDir'] = 'ImportSQLFile';
$cfg['SaveDir'] = 'ExportSQLFile';
然後在phpMyAdmin中建立兩個文件夾,ImportSQLFile和ExportSQLFile,一個用作大數據的導入,一個用作數據導出備份。
然後把我們需要導入的sql文件復制到ImportSQLFile中,上傳到服務器上,選擇需要導入的數據庫名,選擇導入(Import),就會發現在文件導入(File to import)的地方多出來一個導入服務器上的SQL文件(web server upload directory)