MySQL Server не запускается при загрузке

Я установил 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). Тем не менее, он все еще не запускается при загрузке.

5 ответов

Удалите /var/lib/mysql/mysql.sock и затем включите chkconfig mysqld. Вы можете получить меню услуг, запустив ntsysv. Используйте man chkconfig и man ntsysv, чтобы узнать больше о том, как использовать эти программы.

Вы также можете установить strace пакет (он находится в стандартном репозитории YUM), затем запустите:

strace /etc/init.d/mysqld start

Вы должны быть в состоянии довольно быстро определить, где лежит ошибка.

В RHEL/CentOS вы обычно хотите использовать сценарий инициализации для остановки и запуска демона mysqld - он делает гораздо больше, чем просто запускает /usr/bin/mysqld_safe&,

Это версия mysqld из официального репозитория или rpm, который вы скачали с mysql.com?

Если скрипт mysql.server работает, вы сможете скопировать его в /etc/init.d, а затем использовать символическую ссылку на него из /etc/rc3.d rc4.d и rc5.d.

Изменить: Но вам нужно использовать chkconfig, чтобы отключить mysqld, прежде чем делать символические ссылки.

Если процесс еще не запущен, я вижу несколько вариантов.

  • Что-то еще слушает на 3306? (Навряд ли)
  • Вы работаете как пользователь, который не имеет доступа к /var/lib/mysql/mysql.sock. Вы можете попробовать удалить этот файл и перезапустить демон.

У вас уже есть другой сервер mysqld, работающий на сокете: /var/lib/mysql/mysql.sock?

netstat -l -p -d от имени пользователя root и посмотрите, что-нибудь прослушивает порт mysql.

Другие вопросы по тегам