Вопрос: У меня был выход из строя. Теперь файл блокировки MySQL не исчезнет. Что ты предлагаешь?


Я занимаюсь внештатным ИТ-консалтингом для различных клиентов, как в Торонто, так и в Канаде, и во всем мире.

Недавно клиент испытал сбой питания. Теперь у них возникли проблемы с машиной Slackware 12.0.0, которая также выступает в качестве DNS-сервера.

Одна из проблем заключается в том, что они не могут войти в phpMyAdmin.

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

jasonspiro@cybertron:~$ sudo /etc/init.d/mysql stop 
Shutting down MySQL. SUCCESS! 
jasonspiro@cybertron:~$ sudo /etc/init.d/mysql stop
 ERROR! MySQL manager or server PID file could not be found!
jasonspiro@cybertron:~$ sudo /etc/init.d/mysql status
 ERROR! MySQL is not running, but lock exists
jasonspiro@cybertron:~$ ls -l /var/lock/subsys/mysql 
-rw-r--r-- 1 root root 0 2012-07-05 16:18 /var/lock/subsys/mysql

Почему файл блокировки MySQL висит вокруг, несмотря на то, что MySQL не работает?

Могу ли я просто остановить MySQL, удалить файл блокировки и снова запустить MySQL?

Есть ли еще какие-то шаги, которые я должен предпринять дальше или ничего?

РЕДАКТИРОВАТЬ:  Через некоторое время после того, как я задал этот вопрос, я заметил, что способ, которым MySQL установлен на этом компьютере, кажется неуклюжим, Кроме того, я узнал, что /etc/init.d/mysql скрипт, который я нашел на этой машине, всегда создает файл блокировки при запуске MySQL и никогда не удаляет файл при остановке MySQL. Значит, этот вопрос для меня не имеет значения. Спасибо, но мне больше не нужны ответы на этот вопрос.


6
2017-07-05 20:24


Источник


Блокировка файлов удаляется только при грациозном завершении работы. Сбой питания не квалифицируется :-) - Mike Pennington
Блокировка находится в / var / log / run - Andrew Smith
@AndrewSmith: Спасибо за ваш ответ. У меня нет каталога / var / log / run. Должен ли я? - jasonspiro


Ответы:


Делать: ls -al /var/lock/subsys

Искать mysql.pid, Удалите это. Также удалите mysql.sock если он существует.

Если все остальное не работает, [с правами root] updatedb ; locate <filename>, Это ваш друг в таких ситуациях.

Попробуйте перезапустить MySQL, используя скрипт init. Если это не сработает, восстановите контрольную точку базы данных из допустимой резервной копии базы данных.

Если резервных копий базы данных не существует: сделайте клон этого диска с помощью dd КАК МОЖНО СКОРЕЕ. Возможно, вам придется использовать некоторые процедуры восстановления жесткого ядра. Даже если служба MySQL снова начнет резервное копирование, сохраните наиболее известную резервную копию на некоторое время, на всякий случай.


10
2017-07-05 20:46



Теперь MySQL начинает нормально. Данные не были потеряны. Спасибо за ответ, который вы указали выше. - jasonspiro
Добро пожаловать, удачи вам в вашем проекте. - Mike Pennington
каково состояние блокировки в любом случае? это случилось со мной. - Patoshi パトシ
@duckx, см. этот ответ (на SF) а также этот ответ (на SO) - Mike Pennington