centos: другой демон MySQL уже работает с тем же сокетом unix
У меня есть странная ошибка при запуске сервиса mysqld:
Another MySQL daemon already running with the same unix socket.
Я попытался перечислить запущенные службы и остановить их, но та же ошибка происходит при запуске службы mysqld.
Я могу попытаться удалить mysqld и переустановить его, но это также удалит базу данных?
10 ответов:
чтобы предотвратить возникновение проблемы, необходимо выполнить плавное завершение работы сервера из командной строки, а не выключать сервер.
# shutdown -h now
это остановит запущенные службы перед выключением машины.
на основе Centos, дополнительный метод для получения его обратно, когда вы сталкиваетесь с этой проблемой, чтобы переместить mysql.носок:
# mv /var/lib/mysql/mysql.sock /var/lib/mysql/mysql.sock.bak # service mysqld start
перезапуск службы создает новую запись под названием mqsql.носок
TL; DR:
Запустить от имени root и вы будете все установлены:
rm $(grep socket /etc/my.cnf | cut -d= -f2) && service mysqld start
версия:
вы можете найти местоположение файла сокета MySQL, вручную ковыряясь в
/etc/my.conf
, или просто с помощьюgrep socket /etc/my.cnf | cut -d= -f2
скорее всего это будет
/var/lib/mysql/mysql.sock
. Затем (как корень, конечно, или сsudo
prepended) удалите этот файл:rm /var/lib/mysql/mysql.sock
затем запустите демон MySQL:
service mysqld start
удаление
mysqld
будет не решать проблему вообще. Проблема в том, что CentOS & RedHat не убирают после аварии, так что вы должны сделать это сами. Также рекомендуется избегать отключения питания вашей системы (конечно), но иногда вы не можете этого избежать, поэтому эта процедура решит проблему.
Я нашел решение для всех в этой проблеме измените Socket dir на новое место в моем.cnf file
socket=/var/lib/mysql/mysql2.sock
и
service mysqld start
или быстрый способ, как Гекосео ответил
# mv /var/lib/mysql/mysql.sock /var/lib/mysql/mysql.sock.bak # service mysqld start
мое решение для этого было оставлено над mysql.носок в каталоге /var/lib/mysql/ от жесткого выключения. Mysql думал, что он уже работает, когда он не работает.
просто откройте отчет об ошибке с вашим поставщиком ОС, попросив их поместить сокет в /var/run, чтобы он автоматически удалялся при перезагрузке. Это ошибка, чтобы сохранить этот сокет после нечистой перезагрузки, /var / run-это место для таких файлов.
для автоматической очистки .носок файл, поместите эти строки в файл /etc/init.d / mysqld сразу после "start)" блок кода
test -e /var/lib/mysql/mysql.sock SOCKEXIST=$? ps cax | grep mysqld_safe NOPIDMYSQL=$? echo NOPIDMYSQL $NOPIDMYSQL echo SOCKEXIST $SOCKEXIST if [ $NOPIDMYSQL -eq 1 ] && [ $SOCKEXIST -eq 0 ] ; then echo "NOT CLEAN" rm -f /var/lib/mysql/mysql.sock echo "FILE SOCK REMOVED" else echo "CLEAN" fi
это сработало для меня. Я должен был сделать это, потому что у меня нет ИБП, и часто у нас есть сбои питания.
С уважением.
Это может когда-нибудь возникает, когда служба MySQL не выключается должным образом во время перезагрузки ОС. /Var / lib / mysql / mysql.носок был оставлен. Это предотвращает запуск "mysqld".
эти шаги могут помочь:
1: запуск mysqld сервиса killall -9 mysqld_safe mysqld сервис mysqld start
2: rm /var/lib/mysql/mysql.носок сервис mysqld start
чтобы запустить службу MySQL, вы можете удалить '/var/lib/mysql / mysql.носок и снова запустить службу MySQL:
удалить файл сокета:
[root@server ~]# rm /var/lib/mysql/mysql.sock rm: remove socket `/var/lib/mysql/mysql.sock'? yes
запустите службу MySQL:
[root@server~]# service mysqld start Starting mysqld: [ OK ]
Это поможет вам решить вашу проблему.
Это просто происходит из-за ненормального завершения службы mysql. удалить или резервного копирования в /var/библиотека/MySQL в/в MySQL.носок файл и перезапустить mysql.
пожалуйста, дайте мне знать, если любой вопрос..
Я просто прошел через эту проблему и ни одна из рекомендаций не решило мою проблему. Хотя я не смог запустить MySQL при загрузке и нашел то же сообщение в журналах ("другой демон MySQL уже работает с тем же сокетом unix"), я смог запустить службу, как только я прибыл на консоль.
в моем конфигурационном файле, я нашел следующую строку:
bind-address=xx.x.x.x
. Я случайно решил прокомментировать это, и ошибка при загрузке исчезла. Потому что адрес привязки предоставляет безопасность, в некотором смысле, я решил исследовать его дальше. Я использовал IP-адрес машины, а не адрес обратной связи IPv4 -127.0.0.1
.короче говоря, с помощью
127.0.0.1
какbind-address
, я смог исправить эту ошибку. Я надеюсь, что это поможет тем, кто имеет эту проблему, но не в состоянии решить ее с помощью ответов, описанных выше.