2011-12-02 233 views
1

我使用的是Ubuntu的機器的MySQL數據庫,並運行下面的SQL語句:指定OUTFILE路徑

SELECT id,name FROM cars 
INTO OUTFILE 'my_cars.dat' 

LOAD DATA INFILE 'my_cars.dat' INTO TABLE all_cars(id, name); 

它的工作原理。 但是我怎麼能指定路徑my_cars.dat文件放在哪裏?

我的意思是,例如,我希望my_cars.dat文件被放在/data/temp下,我該如何指定?

我試圖用... INTO OUTFILE '/data/temp/my_cars.dat' ...但它不工作...

我得到錯誤:

ERROR 1 (HY000): Can't create/write to file '/data/temp/my_cars.dat' (Errcode: 13) 
+0

>但它不起作用... 爲什麼?你有錯誤嗎?如果是,那麼錯誤消息是什麼? –

回答

0

什麼用戶,你運行MySQL作爲?它對/ data/temp有寫權限嗎?

0

幾個可能的原因:

  1. (我懷疑它的這個)的outfile由客戶端寫的,所以它只能寫一個您具有寫入權限。假設存在/data/temp(參見#2),它很可能由mysql:mysqlroot:root以及700擁有。
  2. MySQL的默認位置(在Ubuntu中至少)是/var/lib/mysql,所以請確保/data/temp存在。
+0

好吧,我有/ data/temp – Mellon

+0

它有什麼權限? – Kevin

+0

我也有寫權限。 – Mellon