2013-09-25 2 views
1

내 레일 액션 중 하나에서 MySql OUTFILE을 사용하여 테이블에서 csv 파일을 만들고 싶습니다.MySql OUTFILE이 레일에서 작동하지 않습니다. 3

path = "#{Rails.root}/public/outfile.csv" 
query_string = "SELECT * INTO OUTFILE '#{path}' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' FROM temp_csv_186;" 
ActiveRecord::Base.connection.execute(query_string) 

하지만 항상 오류가 표시됩니다.

Mysql2::Error: Can't create/write to file '/home/user/Projects/Application/public/outfile.csv' (Errcode: 13): SELECT * INTO OUTFILE '/home/user/Projects/Application/public/outfile.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' FROM temp_csv_186; 

답변

0

실행중인 사용자가/home/user/Projects/Application/public /에 대한 쓰기 권한을 가지고 있습니까?

+0

예. 왜냐하면 나는 루트 사용자로 시도했기 때문이다. –

+1

MySQL 사용자에게 FILE perm을 (CREATE USER MyDBconnecter ... FILE perm으로) 부여했는지 또는 Rails와 별도로 파일을 만들 수 있는지 확인 했습니까? –

+0

@SabyasachiGhoh 내가 공개적으로 파일을 만들 수 없다고 생각하면 파일 위치/이름을 "/tmp/filename.csv"로 지정해야합니다. – Jyothu

관련 문제