1.導(dǎo)入csv文件
使用如下命令:
1.mysql> load data infile "your csv file path" into table [tablename] fields terminated by ','
上面的csv文件以','逗號作為分割符,需要用雙引號或者單引號括起來。如果是以'\t'制表符作為分隔符的話,可不用顯示指明域分割符。
還有一點(diǎn)需要注意,csv文件或者文本文件的路徑要使用絕對路徑,否則mysql會默認(rèn)從數(shù)據(jù)庫存儲的目錄尋找,找不到就會報如下錯誤:
ERROR 13 (HY000) at line 1: Can't get stat of '/var/lib/mysql/PromotionGroup/attempt_1467708933142_34285938_m_000000_0.1469434545564' (Errcode: 2)
perror 2查看一下錯誤碼代表的意思:OS error code 2: No such file or directory。意思就是沒有指定的文件或者目錄。
如果使用絕對路徑之后還是會報如下錯誤:
ERROR 13 (HY000) at line 1: Can't get stat of '/fullpath/file.csv' (Errcode: 13)
使用命令perror 13查看錯誤類型:OS error code 13: Permission denied。根據(jù)錯誤的提示,順其自然的檢查文件是否有可讀權(quán)限,結(jié)果是有的,于是各種百度都沒有得到正確的答案,百思不得其解,最終選擇google在stackoverflow找到了我想要的答案。
Try to use LOAD DATA LOCAL INFILE instead of LOAD DATA INFILE.
使用LOAD DATA LOCAL INFILE嘗試一下,結(jié)果真的可以了!
load data local infile與load data infile的區(qū)別是什么呢?
使用LOCAL關(guān)鍵詞,從客戶主機(jī)讀文件。不使用LOCAL,從服務(wù)器讀取文件。
很奇怪的是,我的文件是在服務(wù)器上的,但是不使用local就會出錯,真搞不明白!
2.導(dǎo)入excel文件
無需指定分割符。直接使用下面的命令:
mysql> load data infile "your excel file path" into table [tablename]
注意上面導(dǎo)入文件時,都需要提前建立好與文件內(nèi)各個段對應(yīng)好的數(shù)據(jù)表。并且文件的路徑需要使用引號括起來,雙引號和單引號都可以。
3.導(dǎo)入sql文件
無需提前建立好數(shù)據(jù)表,直接使用source命令:
source /home/abc/abc.sql;
sql腳本無需雙引號括起來。本質(zhì)上使用source執(zhí)行外部sql腳本,sql腳本會將sql腳本中附帶的數(shù)據(jù)導(dǎo)入到創(chuàng)建的數(shù)據(jù)表中。
以上所述是小編給大家介紹的MySQL導(dǎo)入csv、excel或者sql文件的小技巧,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
您可能感興趣的文章:- 如何將Excel文件導(dǎo)入MySQL數(shù)據(jù)庫