Я пытаюсь создать экспорт данных в формате CSV из MySQL, используя следующий запрос:
SELECT * INTO OUTFILE '/tmp/result.csv'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
FROM getfreepellets WHERE 1
И я получаю следующую ошибку:
#1045 - Access denied for user '[username]'@'localhost' (using password: YES)
(удалено имя пользователя, но оно верное)
Как я могу предоставить этому пользователю доступ для создания файла на сервере?
Редактировать:
Я изменил первую строку на мой точный домашний путь и получил ту же ошибку.
сначала вы должны определить, с чем ваша база данных:
use database_name;
Затем вы можете запустить свой запрос.
Если это все еще не работает, это потому, что вы создаете их, но не определили доступ к нему для данного пользователя.
GRANT ALL ON database_name.* TO 'someuser'@'somehost';
Вы можете узнать больше об использовании Гранта на http://dev.mysql.com/doc/refman/5.1/en/grant.html
#1045 - Access denied for user '[username]'@'localhost' (using password: YES)
Эта ошибка не имеет ничего общего с правами доступа к файлу или каталогу. Это MySQL сообщает вам, что учетные данные для входа в MySQL, которые вы использовали, неверны для этого запроса. Это может быть связано с тем, что, как указал Прикс, вы не указали базу данных для использования.
Я провел часы, пытаясь понять предложения на этой и многих других страницах StackOverflow.
Как бы я ни менял разрешения в MySql, у меня ничего не получалось.
Я вернулся к разрешениям, с которыми начал.
В конечном итоге то, что сработало для меня, оказалось проще, чем предложения других:
echo "select id, emailAddress FROM contacts" | mysql --user=myusername --password mydatabasename > /home/my_output_file.tsv