选择进入文件的错误特权......在MYSQL上

时间:2012-02-22 10:34:41

标签: mysql

尝试执行select into outfile,我遇到以下错误

我的要求:

SELECT * INTO OUTFILE '/local/home/datawords/upload/inscrit_newsletter_us.csv'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM newsletter_us;

错误:

  

错误1(HY000):无法创建/写入文件'/local/home/datawords/upload/exports/inscrit_newsletter_us.csv'(错误代码:2)

exports目录的权限设置为0777。

2 个答案:

答案 0 :(得分:3)

如果文件具有root权限,则可以在/ tmp文件夹中生成此文件

对于前select * into OUTFILE /tmp/inscrit_newsletter_us.csv

如果您没有/ tmp文件夹的root权限,请按照以下步骤进行操作

sudo chown root:root /tmp
sudo chmod 1777 /tmp
sudo /etc/init.d/mysqld restart

答案 1 :(得分:0)

来自the documentation

  

FILE权限授予您读取和写入文件的权限   使用LOAD DATA INFILESELECT ... INTO OUTFILE的服务器主机   语句和LOAD_FILE()函数。拥有FILE的用户   特权可以读取服务器主机上的任何文件   世界可读或MySQL服务器可读。 (这意味着用户   可以读取任何数据库目录中的任何文件,因为服务器可以   访问任何这些文件。) FILE权限也允许用户   在MySQL服务器写入的任何目录中创建新文件   访问。作为安全措施,服务器不会覆盖现有的   文件。

确保您的用户具有该权限。

然后检查目标目录权限是否符合上述要求。