Ivanovo Linux Users Group -  
Форум Помощь Поиск Вход
Предыдущая Следующая Вверх Тема Софт / Программное обеспечение / MySql (10367 хитов)
- Написал(а) Dimidrol Дата 28.05.04 07:06
Установил mysql_client и mysql_server.
Создал базу данных: mysql_install_db.
Далее хочу запустить сервер: mysqld_safe
  но в логах ошибка пишется: Can not start server: Bind on unix socket....
Как узнать, что использует этот сокет. При этом порт 3306 свободен.
Parent - Написал(а) G0thic Дата 28.05.04 08:22
Проверь порт 3306 на занятость (lsof)
Пусти руками без mysqld_safe
Глянь в процессах (ps ax)
Проверь наличие mysql.sock
Права проверь ко всем его дирам и их начинку соответственно.
Кинь mysql логи.
Когда кругозор человека сужается к минимуму, он называет это своей точкой зрения.
Parent - Написал(а) Dimidrol Дата 28.05.04 09:08
В lsof порт 3306 нигде не встречается
Руками запустить - это ./mysql.server start? Так запускал - при запуске ошибок не выскакивало, но в логах то же самое:
   mysqld started
   Cann't start server : Bind on unix socket: Permission denied
   Do you already have another mysqld server running on socket: /var/lib/mysql/mysql.sock ?
   Aborting
   /usr/sbin/mysqld: Shutdown Complete
   mysqld ended
В процессах после этого ничего нового не появилось, а файл /var/lib/mysql/mysql.sock исчез.
Parent - Написал(а) LOE (Site/forum admin) Дата 28.05.04 17:45
lsof с ключиками пускал?
поскольку:
$ lsof | grep 3306
$
(т.е. пусто)
но:
$ netstat -an | grep 3306
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN     

Проверь, от имени какого пользователя пускается mysqld (опция --user=...) и кому на самом деле принадлежат его каталоги и базы.
Проверь, что прописано в my.cnf (если такой есть и используется)

В принципе, можно запустить непосредственно mysqld
(у меня висит процесс:
/usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/lib/mysql/имя_машины.pid --skip-locking --default-character-set=koi8r)
через strace и посмотреть на какой именно стадии он ругается.

PS. дистр какой если не секрет?
"No! Try not! Do. Or do not. There is no try." -- Yoda
Parent Написал(а) Dimidrol Дата 23.06.04 10:45
ни в lsof ни в netstat на 3306 ничего не висит

при запуске "mysqld --user=mysql" выводит ошибку, что сокет уже занят другим процессом
однако при запуске "mysqld --user=root" все нормально запускается
Сейчас буду с правами разбираться (я так понимаю, что пользователю mysql прав не хватает?)

версия mysql = 4.0.15
Parent - Написал(а) Dimidrol Дата 24.06.04 10:20
Устанавливаю права для mysql:
   chown -R root:mysql /var/lib/mysql
   chown -R mysql /var/lib/mysql/data
   chown -R mysql /var/lib/mysql/sock
   chmod -R +rw-x /var/lib/mysql
Все равно при запуске mysqld пишет: Bind on unix socket..........
Может неправильно права устанавливаю? В доках вроде так написано.
Parent Написал(а) LOE (Site/forum admin) Дата 24.06.04 17:50
И все-же, какой дистр? Может стоит почитать идущую в комплекте доку?

По существу: права важны только на каталог, где содержатся базы и на сами базы (как правило, /var/lib/mysql) - пользователь, указанный в --user=...
Запускаешь mysqld от рута? Иначе он на этого юзера не переключится.

Ну и на крайняк, остается запустить через strace и посмотреть, что же он все-таки жаждет сделать.
"No! Try not! Do. Or do not. There is no try." -- Yoda
Parent - Написал(а) Dimidrol Дата 28.06.04 08:42
Наконец-то разобрался.
Право на исполнение (-x) вместе с файлами запретил и папкам.
Дал всем папкам в /var/lib/mysql право на исполнение и все естественно заработало.
Parent Написал(а) LOE (Site/forum admin) Дата 28.06.04 12:19 Отредактировано 28.06.04 12:19
Хех :-)
Не надо шаловливые ручки допускать до рекурсивной смены прав доступа ;-)
Как-то и не укладывается, что на каталоги запрещен +x
"No! Try not! Do. Or do not. There is no try." -- Yoda
Предыдущая Следующая Вверх Тема Софт / Программное обеспечение / MySql (10367 хитов)

Powered by mwForum 2.12.0 © 1999-2007 Markus Wichitill

Page created in 0.910s with 11 database queries.