MySQL 匯入(import) 大容量檔案方法
在這大數據的時代,一筆資料動輒都好幾TB起跳,百萬級的檔案已經算是小case了。
然而若在使用MySQL時,一個好幾百MB的資料,若是使用它內建的匯入精靈,那速度可是會慢到讓人崩潰的。
因此在匯入大檔案時,通常大家會用到(以csv為例):
LOAD DATA INFILE 'path'
INTO TABLE table_name
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;
然而在執行後可能會遇到以下的錯誤:
The MySQL server is running with the --secure-file-priv option so it cannot execute this statement 0.000 sec
這其實是因為MySQL本身只提供使用者在規定的資料夾中讀取資料,因此除了把這功能關掉以外,最方便的方法就是將資料放進該指定的資料夾即可。
至於資料夾在哪邊,只要執行以下query就可以得到確切位置了:
SELECT @@global.secure_file_priv;
通常都是在 C:\ProgramData\MySQL\MySQL Server X.X\Uploads 下,但保險起見還是執行一下指令看看吧!
至於若想更改該資料夾位置甚至是關掉的話,請到 C:\ProgramData\MySQL\MySQL Server X.X\下,修改my.ini檔案就行了。
然而若在使用MySQL時,一個好幾百MB的資料,若是使用它內建的匯入精靈,那速度可是會慢到讓人崩潰的。
因此在匯入大檔案時,通常大家會用到(以csv為例):
LOAD DATA INFILE 'path'
INTO TABLE table_name
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;
然而在執行後可能會遇到以下的錯誤:
The MySQL server is running with the --secure-file-priv option so it cannot execute this statement 0.000 sec
這其實是因為MySQL本身只提供使用者在規定的資料夾中讀取資料,因此除了把這功能關掉以外,最方便的方法就是將資料放進該指定的資料夾即可。
至於資料夾在哪邊,只要執行以下query就可以得到確切位置了:
SELECT @@global.secure_file_priv;
通常都是在 C:\ProgramData\MySQL\MySQL Server X.X\Uploads 下,但保險起見還是執行一下指令看看吧!
至於若想更改該資料夾位置甚至是關掉的話,請到 C:\ProgramData\MySQL\MySQL Server X.X\下,修改my.ini檔案就行了。
留言
張貼留言