ERROR 1045 (28000): Access denied for ..

MySQLストアドプロシジャ等から任意のデータをファイルに出力しようとして、
次のエラーが発生、

ERROR 1045 (28000): Access denied for user 'user'@'localhost' (using password: YES)

出力先のファイルシステムパーミッションをチェックしても問題がない。

SELECT host, user FROM mysql.user ;

を見ても、問題ない。
一番怪しい、
show GRANTS FOR 'user'@'%';

の結果を見ても以下のような結果で、
+---------------------------------------------------------------------------------------------------------+
| Grants for user@% |
+---------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' IDENTIFIED BY PASSWORD '70r5113226y937a' WITH GRANT OPTION |
+---------------------------------------------------------------------------------------------------------+

全てのアクセス権があるように見える。

SELECT INTO OUTFILE の権限は、FILE という権限名で

grant file ON *.* TO 'user'@'%'

を実行して、

flush privileges

を実行すれば、ファイル出力できるようになる。

注意が必要なのは、flush privilegesを実行後、MySQLをログアウトして
別のコネクションにしないと、
新しい privileges にならず、grant file ON *.* TO を実行したのに、なぜできない!などと、
無駄な時間を費やしてしまう。