Разрешения на создание / запись в MySQL - PullRequest
6 голосов
/ 15 февраля 2010

У меня возникли проблемы с разрешением в моем SELECT ... INTO OUTFILE заявлении.

Когда я захожу в свою базу данных и выполняю простую команду экспорта, например:

mysql> select * from XYZ into outfile '/home/mropa/Photos/Desktop/TEST.txt';

Я получаю ответ:

ERROR 1 (HY000): 
Can't create/write to file '/home/mropa/Photos/Desktop/TEST.txt' 
(Errcode: 13)

Однако, когда я просто пишу:

mysql> select * from XYZ into outfile 'TEST.txt';
Query OK, 8287 rows affected (0.73 sec)

Файл записан в каталог /var/lib/mysql/XYZ. Я посмотрел в файл /etc/apparmor.d/usr.sbin.mysqld, где mysql, похоже, определяет права на чтение и запись, но я не знаю, как его изменить.

Как я могу дать себе разрешение на экспорт таблицы MySQL в любой каталог, который мне нравится?

Ответы [ 5 ]

6 голосов
/ 15 февраля 2010

Проблема в правах доступа к каталогу. mysqld не работает как current_user. Добавьте пользователя mysqld в группу с правами на запись в целевые каталоги (удобно, но не так безопасно) или не забудьте изменить разрешения целевого каталога до и после записи выходного файла.

2 голосов
/ 15 февраля 2010

вы можете создать каталог, доступный для записи пользователю, который запускает mysqld (обычно «mysql»), и записать туда файлДля примера:

chmod a+w /home/mropa/mysql
1 голос
/ 15 февраля 2010

См. https://wiki.ubuntu.com/DebuggingApparmor для получения информации об отладке / отключении профилей apparmor.

Это может быть не проблема с прибором, в частности. Пользователь, который запускает mysqld, может не иметь прав на запись в указанную вами папку. Проверьте разрешение на каталог / файл назначения.

1 голос
/ 15 февраля 2010

Похоже, у вас нет доступа к этой конкретной папке. Вы должны добавить mysql к владельцу группы этого конкретного местоположения.

Я не знаю, под каким пользователем вы запускаете mysql, однако,

chown mysql: mysql в / home / mropa / Photos / Desktop / logs будет означать, что пользователь mysql и группа mysql являются владельцами, поэтому имеет разрешение. Затем вам нужно убедиться, что разрешения включают запись, но этого должно быть достаточно.

Chown Command

0 голосов
/ 01 декабря 2013

mysql обычно работает под пользователем mysqld. разрешения могут быть решены напрямую с apparmor. см этот ответ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...