LINUX.ORG.RU
ФорумAdmin

Почему при разных пользователях mysqld 8 запускается по разному?

 , , ,


0

2

При указание пользователя --user=root демон запускается нормально, а при --user=mysql strace показывает, что он лезет к сокету демона nscd которого нет в lxc.Первый раз через systemctl запуск мускуля проходит нормально, но со второго раза он ругается на доступ и рекомендует мускуль запустить от рута. При чем в kvm остановка и запуск мускуля проходит нормально. Я поставил nscd и все заработало. Mysql ставил из пакетов с оф. сайта. Кто-нибудь может объяснить дураку, почему мускуль так себя ведет, и где искать ответы?

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/false
nscd:x:28:28:NSCD Daemon:/:/sbin/nologin

Ответ на: комментарий от Deleted
passwd:     files sss
shadow:     files sss
group:      files sss
hosts:      files dns myhostname
bootparams: nisplus [NOTFOUND=return] files
ethers:     files
netmasks:   files
networks:   files
protocols:  files
rpc:        files
services:   files sss
netgroup:   nisplus sss
publickey:  nisplus
automount:  files nisplus sss
aliases:    files nisplus
nikramunger ()
Ответ на: комментарий от Deleted

1)через веб-морду интерфейса proxmox подключаюсь к tty lxc c рут правами, используя xterm.js

2)Пытаюсь запустить mysqld через systemctl. Выдает, что попытка провалена, для подробностей запустите systemctl status и journalctl -xe. Запускаю journalctl -u mysqld ,и единственная информативная ошибка [ERROR] [MY-010123] [Server] Fatal error: Please read «Security» section of the manual to find out how to run mysqld as root!

3)Запускаю /usr/sbin/mysqld --user=root - все ок. Запускаю /usr/sbin/mysqld --user=mysql вылезает ошибка, написанная выше.

4)Запускаю strace /usr/sbin/mysqld --user=mysql, и он показывает, что-то типо аксесс денаед «путь»/nscd.sock (результаты работы strace не сохранил). Ну тут все логично. В доступе отказано, потому что nscd демона нет и следовательно нет nscd.sock.

5)Ставлю nscd и ставлю владельца mysql на все в /var/lib/mysql/, и мускуль запускается через systemctl.

nikramunger ()
Ответ на: комментарий от nikramunger

Запускаю strace /usr/sbin/mysqld --user=mysql, и он показывает, что-то типо аксесс денаед «путь»/nscd.sock (результаты работы strace не сохранил). Ну тут все логично. В доступе отказано, потому что nscd демона нет и следовательно нет nscd.sock.

Если nscd.sock не существует, то ошибка должна быть другая, не «аксесс денаед».

Сложно сказать что именно у тебя происходит. Попробуй запустить под strace с одинаковыми опциями на kvm (где всё работает) и на lxc (где не работает). И сравнить логи strace. Возможно у тебя где-то на какие-то файлы не хватает прав и из-за этого всё ломается. При чём тут вообще nscd - не понятно.

Deleted ()

Почему при разных пользователях mysqld 8 запускается по разному?

Ну просто в программном коде MySQL может быть зашита разная логика работы в зависимости от того, с какими правами работает CУБД-шка. Если не root, то какие-то действия (например, DNS-разрешение) - только через NSCD. Ну а root-у позволена большая свобода действий. Только и всего.

vinvlad ()