Próbuję wyprowadzić dane z tabeli MySQL do pliku, ale otrzymuję błędy uprawnień:
$ pwd
/home/dotancohen
$ mkdir in
$ chmod 777 in/
$ mysql -ugs -p
mysql> USE someDatabase;
mysql> SELECT * FROM data INTO OUTFILE '/home/dotancohen/in/data.csv';
ERROR 1045 (28000): Access denied for user 'gs'@'localhost' (using password: YES)
mysql>
Jeśli dany katalog ma chmod do 777, to dlaczego użytkownik MySQL nie może zapisać pliku? Co ciekawe, nie mogę pisać do / tmp /.
EDYCJA: Wygląda na to, że użytkownik DB ma odpowiednie uprawnienia MySQL:
mysql> show grants;
+----------------------------------------------------------------------------------+
| Grants for gs@localhost |
+----------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'gs'@'localhost' IDENTIFIED BY PASSWORD 'somePassword' |
| GRANT ALL PRIVILEGES ON `gs\_%`.* TO 'gs'@'localhost' |
+----------------------------------------------------------------------------------+
2 rows in set (0.01 sec)
SELECT
uprawnienia. Często przeglądam bazę danych jako ten użytkownik.
FILE
uprawnienia opisane w dokumentach MySQL .
in
ma sensu, jeśli MySQL nie może uzyskać dostępudotanchoen
. Innymi słowy, pole depostu bezpieczeństwa w skarbcu bankowym może być szeroko otwarte, ale jeśli drzwi skarbca są zamknięte, nie dostaniesz się do pudełka. Twójgs
użytkownik musi również mieć mysqlFILE
przywilej rzeczywiście wykonania tego zapytania.