저는 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을 반환합니다.