尝试执行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。
答案 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)
FILE
权限授予您读取和写入文件的权限 使用LOAD DATA INFILE
和SELECT ... INTO OUTFILE
的服务器主机 语句和LOAD_FILE()
函数。拥有FILE
的用户 特权可以读取服务器主机上的任何文件 世界可读或MySQL服务器可读。 (这意味着用户 可以读取任何数据库目录中的任何文件,因为服务器可以 访问任何这些文件。)FILE
权限也允许用户 在MySQL服务器写入的任何目录中创建新文件 访问。作为安全措施,服务器不会覆盖现有的 文件。
确保您的用户具有该权限。
然后检查目标目录权限是否符合上述要求。