"my.cnf"에 값이 설정되어 있는데도 "mysqld.pid" 및 "mysqld.sock"이 내 시스템에서 누락되는 이유는 무엇입니까?

"my.cnf"에 값이 설정되어 있는데도 "mysqld.pid" 및 "mysqld.sock"이 내 시스템에서 누락되는 이유는 무엇입니까?

나는 일하고 있었다이 질문에 대한 대답—내 Ubuntu 12.04.5 개발 서버 중 하나에서 — 다음과 같이 경로가 명시적으로 설정되어 있음에도 불구하고 MySQL 설치가 생성되지 않고 파일이 생성되지 않는다는 것을 깨달았습니다 mysqld.pid.mysqld.sockmy.cnf

[mysqld]
# 
# * Basic Settings
# 
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /var/lib/mysql
tmpdir          = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking

왜 이런 일이 발생하며 문제를 해결하기 위해 무엇을 할 수 있습니까?

답변1

mysqld.pid및 의 위치가 mysqld.sock내 서버의 에 설정되어 있어도 my.cnf디렉터리가 존재하지 않으므로 해당 파일이 생성되지 않습니다. 이렇게 하면 문제가 해결됩니다.

먼저 다음과 같이 mysqld/디렉터리를 만듭니다 /var/run/.

sudo mkdir -p /var/run/mysqld/

그런 다음 다음을 mysqld.pid사용하여 파일을 만듭니다 touch.

sudo touch /var/run/mysqld/mysqld.pid

다음 mysqld.sock으로 다음을 사용하여 파일을 만듭니다 touch.

sudo touch /var/run/mysqld/mysqld.sock

이제 디렉터리와 파일의 소유권을 mysql:mysql다음과 같이 변경합니다.

sudo chown mysql:mysql -R /var/run/mysqld

마지막으로 해당 파일에 대한 권한은 다음과 같아야 합니다.

chmod 755 /var/run/mysqld
chmod 777 /var/run/mysqld/mysqld.sock
chmod 660 /var/run/mysqld/mysqld.pid

그리고 다음과 같이 MySQL을 다시 시작하여 해당 파일을 설정하고 생성합니다.

sudo service mysql restart

모든 작업이 완료되면 MySQL은 예상대로 mysqld.pid및 파일을 생성할 수 있습니다 .mysqld.sock

관련 정보