mysql.sock을 자동으로 삭제하려면 /etc/init.d/mysql을 편집하세요.

mysql.sock을 자동으로 삭제하려면 /etc/init.d/mysql을 편집하세요.

저는 CentOS 버전 6.5(최종) 가상 머신에서 MySQL을 실행하고 있습니다. Joomla 테스트에 사용됩니다.

물리적 호스트가 자주 재부팅되는데 이는 괜찮습니다. 그러나 VM은 완전한 종료를 수행하지 않습니다. 다시 시작하면 여기에 잠금 파일이 나타납니다./var/lib/mysql/mysql.sock

현재 수동으로 실행 중인 나를 위해 제거할 쉘 스크립트를 만들었습니다. 이것은 잘 작동하지만 실행해야 합니다.

#!/bin/bash
sudo mv /var/lib/mysql/mysql.sock /var/lib/mysql/mysql.sock.bak
sudo service mysqld restart

누군가 잠금 파일을 자동으로 제거하려면 /etc/init.d/mysql을 편집하라고 제안했습니다. 이것이 좋은 생각처럼 보일 수도 있지만, 파일을 잠그는 것은 실제로 중요한 목적을 수행하며, im mysqld를 조작하는 것은 득보다 실이 더 많을 수 있습니다.

재부팅 후 잠긴 파일을 자동으로 삭제하는 방법은 무엇입니까?

답변1

소켓 파일은 프로세스가 실행 중인 서버와 통신하는 방법입니다. 서버가 다운되면 소켓은 더 이상 필요하지 않습니다. 말씀하신 대로 서버가 정상적으로 종료될 수 있다면 서버는 제거될 것입니다. 소켓이 이미 존재하는 경우 MySQL은 시작되지 않으며 오류 메시지가 표시됩니다. 서버가 실행되지 않을 때 삭제하면 됩니다.

다음 줄을 편집 /etc/init.d/mysql하고 찾으세요.

start(){

그 아래에 다음을 삽입합니다.

if [ -S /var/lib/mysql/mysql.sock ] ; then
    rm /var/lib/mysql/mysql.sock
fi

다음과 같이 만드세요:

start(){
        if [ -S /var/lib/mysql/mysql.sock ] ; then
            rm /var/lib/mysql/mysql.sock
        fi

답변2

/etc/inittab에 다음 줄을 추가하겠습니다.

이 파일은 시작할 때마다 실행됩니다.

sudo를 중단하고 재부팅할 수 있습니다.

"매우 확실합니다" /etc/inittab이 0을 반환합니다.

관련 정보