WRITE/LOCK problem @linux

Rynor

stay hungry
WRITE/LOCK problem @linux

Уважаемые!
вот довелось и ALTER набить в mysql-консольке под линух(ключевое слово!)
тут же навалилось: сначала не хочет писать
разумеется, права у меня rwxr-xr-x (пардон, циферки все никак не запомню еще)
ну я могу поставить полные права но это как-то неправильно, по-моему
а юзера mysql как рута для БД у меня нет, есть другие юзеры
вопрос 1: как правильно решить проблему?
создать в mysql юзера mysql со всеми нужными грантами (сделать его рутом) или использовать имеющиеся права других админов, но на базы мускула прописать rwx*3?

далее
писать могу, но таблица залочена
FLUSH tables with read lock
UNLOCK table lalala
не помогают, получаю сообщение об ошибке: таблица залочена

вопрос 2: что делать?

заранее спасибо за помощь!

p.s. вопрос 3: как стопить рестартить mysql?
 

Апельсин

Оранжевое создание
сделай отдельного пользователя, из под которого у тебя будет запускаться сервер. по умолчанию это mysql

> не помогают, получаю сообщение об ошибке: таблица залочена
кем залочена?

> как стопить рестартить mysql?
загляни в документацию, там целая глава этому посвящена.
 

Rynor

stay hungry
сервер из под него и запускается, естественно
я говорю по юзеров не линукса, а самого мускула

там не пишет кем залочена, но таблица юзается на сайте (PHP/MySQL).

Это первая ошибка (запись):
Error: 1 - Can't create/write to file './lalala/#sql-696_c.frm' (Errcode: 13)
Надо полагать, не дает создавать временный файл при ALTER, так как юзер в mysql консоли - не mysql.
В общем, сейчас создам юзера mysql в БД и попробую.

значит, плохо искал
 

Yurik

/dev/null
>вопрос 3: как стопить рестартить mysql?
1.
mysqldmin shutdown
mysqldmin reload

2.
$> mysql.server start
$> mysql.server stop
 

Апельсин

Оранжевое создание
> Error: 1 - Can't create/write to file './lalala/#sql-696_c.frm' (Errcode: 13)
Это означает что у тебя как раз проблема в правами не MySQL, а именно линукса. И создание пользователя mysql тебе ничего не даст.

Yurik, mysqldmin reload делает свосем не перезагрузку сервера.
 

Rynor

stay hungry
вот я так и понял

запутался с правами линукса и мускула :(

если я захожу в систему как root и захожу в mysql косоль --user=mysql --pw-lalala (со всеми правами на БД) то при команде
ALTER table дисковые операции идут от имени какого юзера? Я так понимаю - root. Но у рута же и так все привилегии, даже если права на каталог и файлы на другого пользователя прописаны. Почему не дает писать во временный файл?
 

Yurik

/dev/null
>Yurik, mysqldmin reload делает
понял. он перегружает права.

создай
useradd mysql

пропиши в
my.cnf
[mysqld]
user = mysql

или запускай
./mysqld_safe --user=mysql &

сделай chown на папку /data на юзера mysql
 

Rynor

stay hungry
2 Yurik:
mysql.server куда надо из support-files кинуть?
спасибо, читаю доку
 

Апельсин

Оранжевое создание
> Почему не дает писать во временный файл?

потому что все операции с файлами mysql выполняет из под того юзера, из под которого он сам запущен, а не из под которого ты зашел в систему или запустил клиентское приложение ;) ему это фиолетово :)
 

Rynor

stay hungry
useradd mysql
chown на папку /data на юзера mysql
./mysqld_safe --user=mysql &

имеет место быть, все сделал как в INSTALL/README
написано
сервак (тестовый) крутится не первый месяц, все отлично работает
просто до дисковых операций типа ALTER с mysql дело еще не доходило, работал с виндовой версией
 

Rynor

stay hungry
2 Апельсин:
я понял, спасибо
запускаю юзером mysql:
mysqld --user=mysql &

но в my.cnf у меня прописано
[client]
user = lalala
...

[mysqld]
про юзеров ничего не писал слава богу :)

это перебивает юзера mysql?
 

Rynor

stay hungry
разобрался
сам дурак
на папке новой базы, скопированной с подмонтированного виндового диска права стояли рута.
тьфу
вот такие мелочи больше всего времени и отнимают
всем спасибо за помощь, разобрался
 
Сверху