Я намагаюся вивести дані з таблиці MySQL у файл, але отримую помилки дозволу:
$ 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>
Якщо відповідний каталог змінено на 777, то чому користувач MySQL не може написати файл? Цікаво, що я не можу писати в / tmp /.
EDIT: Схоже, користувач DB має належні дозволи 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
дозволи. Я часто переглядаю базу даних як цей користувач.
FILE
привілей, як описано в документах MySQL .
in
безглуздо, якщо MySQL не може отримати доступdotanchoen
. Іншими словами, ящик для зберігання в сховищі банку можна залишити широко відкритим, але якщо дверцята банківського сховища заблокована, ви не потрапляєте до коробки. Вашgs
користувач також повинен матиFILE
привілей mysql для фактичного виконання цього запиту.