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.