Назад | Перейти на главную страницу

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

Я установил 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.

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

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