centos: другой демон MySQL уже работает с тем же сокетом unix


У меня есть странная ошибка при запуске сервиса mysqld:

Another MySQL daemon already running with the same unix socket.

Я попытался перечислить запущенные службы и остановить их, но та же ошибка происходит при запуске службы mysqld.

Я могу попытаться удалить mysqld и переустановить его, но это также удалит базу данных?

10 75

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, я смог исправить эту ошибку. Я надеюсь, что это поможет тем, кто имеет эту проблему, но не в состоянии решить ее с помощью ответов, описанных выше.