Подтвердить что ты не робот

Ошибка MySQL Daemon Lock

Вчера вечером мой сервер MySQL неожиданно упал. При попытке перезагрузки (с service mysql restart - я root) он просто зависает. С помощью команды mysql -u root -p я получаю ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2). Затем я попытался запустить демона вручную (mysqld). Запрос будет висеть около 2 секунд, а затем вернуться. При ближайшем рассмотрении журналов ошибок я получил:

2016-01-22T19:18:32.399584Z 0 [ERROR] Could not create unix socket lock file /var/run/mysqld/mysqld.sock.lock.

2016-01-22T19:18:32.399622Z 0 [ERROR] Unable to setup unix socket lock file.

2016-01-22T19:18:32.399646Z 0 [ERROR] Aborting

Затем я попробовал chown mysql /var/run/mysqld, chmod -R 775 /var/run/mysqld и apt-get install mysql-community-server --reinstall. Не повезло.

Я огляделся и не смог найти решение. Любая помощь здесь?

Примечание. Я запускаю Debian 8 (Jessie) с сообществом MySQL Server 5.7.10

4b9b3361

Ответ 1

Фиксированный. Добавьте skip-external-locking в my.cnf в разделе [mysqld], а затем перезагрузите всю систему. Это должно исправить это, для тех, кто это находит. Также, если вы создали резервную копию данных, затем попытались восстановить и сказали rm ib*, чтобы он работал, вам нужен файл ibdata.

Ответ 2

Я просто столкнулся с этим. Установка mysql была немного странной и отсутствовала /Вар/Работа/туздЫ/

MySQLd пытался создать файл сокета и блокировки, но родительский каталог отсутствовал. Я просто создал каталог

sudo mkdir /var/run/mysqld

chowned to to mysql

sudo chown mysql:mysql /var/run/mysqld

Тогда я смог нормально запустить mysqld.

Ответ 3

Сегодня у меня возникла такая же проблема на моем сервере Ubuntu. Но я думаю, что решение НЕ является отключением блокировки. В моем случае просмотр системного журнала (dmesg | tail и journalctl -xe) показал, что проблема с аперсоном и решение можно найти в этом вопросе.

Ответ 4

Также может быть не хватает места на диске.

Ответ 5

Ниже команды помогли мне.

sudo mkdir /var/run/mysqld

sudo chmod 777 /var/run/mysqld -R

Ответ 6

У меня была следующая ошибка

[ERROR] Unix socket lock file is empty /var/lib/mysql/mysql.sock.lock.

Эта ошибка возникла в результате того, что моему серверу не хватило места на 100% (см. ниже)

Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/xvda1      41153856 28531384  12187364  100% /

Убедитесь, что папка существует с соответствующими разрешениями

chown mysql:mysql /var/lib/mysql/

И обязательно удалите файл, чтобы сервер mysql мог сгенерировать новый

rm /var/lib/mysql/mysql.sock.lock

Ответ 7

Если вы используете Docker для запуска MySQL, проверьте, достаточно ли выделенного дискового пространства в настройках Docker.

Ответ 8

Переименуйте /var/lib/mysql/mysql.sock.lock & amp;/var/lib/mysql/mysql.sock в /var/lib/mysql/mysql.sock.lock.bck & amp;/var/lib/mysql/mysql.sock.bck соответственно и запустите mysqld. Оно работает