Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: bash и MySQL. SELECT *.....INTO OUTFILE... Не создается файл в $HOME
 
 автор: RomantikPro   (29.07.2007 в 15:44)   письмо автору
 
 

Не создаётся файл по абсолютному пути в каталоге

$HOME/cboss/ext.unl
и возникает ошибочка:


ERROR 1 (HY000) at line 3: Can't create/write to file '/home/boss/cboss/ext.unl' (Errcode: 13)


, а при указании относительного пути файл создаётся в директории с базой данных /var/lib/mysql/mag2


Вот примерчик:

#!/bin/bash
#  customers_mag


ERROR=25
NO_ARGS=0

if [ $# -eq "$NO_ARGS" ]
then

echo "
 -h  что-то такое здесь написано
"
exit $ERROR
fi

while getopts "h" OPTION
do
case $OPTION in

h)
mysql -u root -p << ends
use mag2;
CREATE TEMPORARY TABLE temp_aaa SELECT * FROM customers;
SELECT * INTO OUTFILE "$HOME/cboss/ext.unl" FROM customers;
ends

;;

esac
done
shift $(($OPTIND - 1))


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

на папке /var/lib/mysql/ права

drwxr-xr-x  9 mysql    mysql    4096 Июл 29 14:59 mysql


папка обычного пользователя

drwx------ 50 boss boss 4096 Июл 29 15:29 boss

   
 
 автор: cheops   (29.07.2007 в 16:00)   письмо автору
 
   для: RomantikPro   (29.07.2007 в 15:44)
 

>папка обычного пользователя
>drwx------ 50 boss boss 4096 Июл 29 15:29 boss
И как сюда пользователь mysql сможет попасть? Либо права увеличивайте, либо изменяйте владельца, либо mysql включайте в группу boss и изменяйте права на drwxrwx---.

   
 
 автор: RomantikPro   (29.07.2007 в 16:21)   письмо автору
 
   для: cheops   (29.07.2007 в 16:00)
 

да я понимаю, что mysql туда не может попасть :-) Просто как это сделать, чтобы всё не открыть.
Спасибо! Сейчас попробую.

   
 
 автор: cheops   (29.07.2007 в 19:43)   письмо автору
 
   для: RomantikPro   (29.07.2007 в 16:21)
 

mysql добавьте в группу boss, если только boss не выполняет роль root и установите права drwxrwx---.

   
 
 автор: RomantikPro   (29.07.2007 в 23:35)   письмо автору
 
   для: cheops   (29.07.2007 в 19:43)
 

boss не выполняет роль root, это обычный пользователь.

После добавления mysql в группу boss и проставление прав 770 на все вложенные каталоги в директории /home и на нее саму, всё тоже самое. Я даже поставил везде 777. Не помогло.
Изначально у /home владелец был root, группа тоже root. И я нормально тогда заходил из под boss с помощью mysql -u root -p (из консоли). Менял группу для /home на mysql, потом на boss, всё тоже самое. Менял также владельца /home и всех вложенных файлов и каталогов на boss........не помогло!
Может быть нужно как-то в /etc/my.cnf указать явно путь к нужному каталогу в котором я хочу создать файл с выгружаемыми из MySQL данными?


PS: ОС - Fedora Core 6

   
 
 автор: cheops   (30.07.2007 в 10:29)   письмо автору
 
   для: RomantikPro   (29.07.2007 в 23:35)
 

Хм... так в операторе SELECT * INTO OUTFILE вы можете указать любой путь какой хотите.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования