2016-07-25 95 views
-2

我正在嘗試將一個mysql查詢保存到csv。我搜索並找到了各種選項。這個選項似乎是非常乾淨的代碼,但不工作MySql結果爲csv

我得到一個錯誤

1045 - 訪問被拒絕的用戶 '用戶' @ 'localhost' 的(使用密碼:YES)

SELECT * 
FROM clients 
INTO OUTFILE 'mytest.csv' 

當我刪除INTO OUTFILE 'mytest.csv'它工作正常

(簡化SQL代碼)

+0

可能添加類似 'C:/.../ mytest.txt'? –

+0

@MarcElBichon。感謝評論。仍然是相同的錯誤 –

回答

0

即允許誤差「unidimec」在localhost.check用戶PRI vidge for「unidimec」並授予mysql root用戶的特權。

+0

用戶擁有完整的權限 –

+0

*授予所有特權。 *到'unidimec'@'localhost';然後給FLUSH PRIVILEGES; – Kumaresan

0

語法

SELECT Your_Column_Name 
    FROM Your_Table_Name 
    INTO OUTFILE 'Filename.csv' 
    FIELDS TERMINATED BY ',' 
    ENCLOSED BY '"' 
    LINES TERMINATED BY '\n' 
0

我認爲你必須將權限授予mysql用戶對生成的文件。

登錄使用SSH (如果你有專門的服務器,否則必須先與網站託管支持)由

登錄與MySQL的root下面的命令

mysql -u root -p[password] 

在MySQL界面登錄後授予此用戶的文件許可

GRANT FILE ON *.* TO 'unidimec'@'localhost'; 
0

請仔細閱讀「INTO OUTFILE」文檔:

SELECT ... INTO OUTFILE語句主要用於讓您快速將錶轉儲到服務器計算機上的文本文件。如果要在除服務器主機之外的其他主機上創建生成的文件,通常無法使用SELECT ... INTO OUTFILE,因爲無法寫入相對於服務器主機文件系統的文件路徑。但是,如果MySQL客戶端軟件安裝在遠程計算機上,則可以使用客戶端命令(如mysql -e「SELECT ...」> file_name)在客戶端主機上生成該文件。

如果可以使用服務器文件系統上的網絡映射路徑訪問遠程主機上文件的位置,也可以在不同於服務器主機的其他主機上創建生成的文件。在這種情況下,目標主機不需要存在mysql(或其他MySQL客戶端程序)。

http://dev.mysql.com/doc/refman/5.7/en/select-into.html