■発生問題

select * from table_name into outfile ‘/home/test.csv’に適当なテーブル内容を吐き出そうと思ったら

 

ERROR 1 (HY000): Can’t create/write to file ‘/home/ssff.txt’ (OS errno 13 – Permission denied)

上記エラーにより吐き出せなかった

 

パーミッションは775であり、問題ないので原因がよくわからずにつまづいた

 

 

 

■原因

エラー概要からは権限がないと言われている

mysqlログインアカウント権限にも、FILE権限はつけており、一通りのパーミッションは解決しているのが何故エラーが起きるのかは詳細は不明

 

もちろんsecure-file_privも=’’と空白にしている為、まずmysqlのセキュリティが邪魔をしている訳でもないと思われる

 

mysql-serverという所有者とmysqlというグループが作成されており、それらが関与されている可能性がある

 

 

 

■解決策

mysqlのoutfileできる場所は元々決まっているようであった

var/lib/mysql-file

 

上記以下にoutfile ‘/var/lib/mysql-files/test.csv’をすれば問題なく吐き出せる

 

 

 

排出については問題はないが、アクセスに問題があり、mysql-fileの所有者はmysql-server、権限グループはmysqlとなっており、パーミッションを変更しないと中身が見れない

 

fileを覗いてnullだった場合は読み取りパーミッションを変更する必要があるので注意

 

多分だが、グループと所有者、my.cnfを操作することでどこにでも吐き出せるように設定できるはず

 

 

 

 

以上、mysql select into outfileのパーミッションエラー解決方法