[問題]
レンタルサーバのmysqlにデータをロードすると、以下の様なエラーが表示され、
ロードが失敗してしまう。
mysql> load data infile '/virtual/xxx/yyy/data.csv'
into table table_name
fields terminated by ','
enclosed by '"';
into table table_name
fields terminated by ','
enclosed by '"';
ERROR 1045 (28000): Access denied for user 'user_name'@'localhost' (using password: YES)
[原因と対策]
これは、このユーザにfileからデータを読み込む権限がないらしい。
対策1:rootユーザでログインして、このユーザにfile権限を与える。
mysql>grant file on *.* to 'user_name'@localhost;
レンタルサーバにrootユーザでmysqlにログインすることは、たいてい制限されているため、
この対策は効かない場合がある。
対策2:レンタルサーバにcsvファイルをFTPとかなんとかで持って行き、
以下のやり方でデータをロードする。
$mysql --enable-local-infile -u user_name -ppassword
mysql> load data local infile '/virtual/xxx/yyy/data.csv'
into table table_name
fields terminated by ','
enclosed by '"';
into table table_name
fields terminated by ','
enclosed by '"';
上記で、無事に解決出来ました。
0 件のコメント:
コメントを投稿