2016-07-25 78 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