Я установил MySQL
на RHEL 5 server
и я хочу настроить его так, чтобы сервер запускался при загрузке.
Я запустил chkconfig --list mysqld
команда, и в настоящее время она работает на уровнях 3, 4 и 5. Однако, когда я перезагружаю сервер, нет mysqld
демон запущен.
Я также пробовал вручную запустить сервер, выполнив /usr/bin/mysqld_safe
и я получаю следующий результат:
Starting mysqld daemon with databases from /var/lib/mysql
STOPPING server from pid file /var/run/mysqld/mysqld.pid
100319 10:31:30 mysqld ended
Я заглянул в /var/log/mysqld.log
и я нашел следующее:
100319 10:29:01 mysqld started
100319 10:29:02 InnoDB: Started; log sequence number 0 29752204
100319 10:29:02 [ERROR] Can't start server : Bind on unix socket: Permission denied
100319 10:29:02 [ERROR] Do you already have another mysqld server running on socket: /var/lib/mysql/mysql.sock ?
100319 10:29:02 [ERROR] Aborting
ОБНОВЛЕНИЕ: я попытался начать использовать mysql.server
сценарий (из /usr/share/mysql
), и это сработало, поэтому я связал этот скрипт с соответствующими уровнями выполнения (rc0.d
, rc3.d
и rc5.d
). Однако он все еще не запускается при загрузке.
Удалите /var/lib/mysql/mysql.sock, а затем включите chkconfig mysqld. Вы можете получить меню служб, запустив ntsysv. Используйте man chkconfig и man ntsysv, чтобы узнать больше о том, как использовать эти программы.
Это версия mysqld из официального репозитория или из rpm-пакета, загруженного с mysql.com?
Если скрипт mysql.server работает, вы сможете скопировать его в /etc/init.d и затем создать на него символическую ссылку из /etc/rc3.d rc4.d и rc5.d.
Изменить: но вам нужно будет использовать chkconfig, чтобы сначала отключить mysqld, прежде чем создавать символические ссылки.
Вы также можете установить strace
пакет (он находится в стандартном репозитории YUM), затем запустите:
strace /etc/init.d/mysqld start
Вы сможете довольно быстро определить причину ошибки.
В RHEL / CentOS вы обычно хотите использовать сценарий инициализации для остановки и запуска демона mysqld - он делает гораздо больше, чем просто запускает /usr/bin/mysqld_safe&
.
У вас уже есть другой сервер mysqld, работающий на сокете: /var/lib/mysql/mysql.sock?
netstat -l -p -d как root и посмотрите, прослушивает ли что-нибудь порт mysql.
Если процесс еще не запущен, я вижу несколько вариантов.
/var/lib/mysql/mysql.sock.
Вы можете попробовать удалить этот файл и перезапустить демон.