Another process with pid XXXX is using unix socket file

소이뎁·2024년 11월 26일
0

error

목록 보기
1/2

📍 문제 상황

MySQL 서버를 시작하려 했을 때, 로그에 다음과 같은 오류 메시지가 출력된다:

[ERROR] [MY-010259] [Server] Another process with pid XXXX is using unix socket file.
[ERROR] [MY-010268] [Server] Unable to setup unix socket lock file.
[ERROR] [MY-010119] [Server] Aborting

이는 MySQL 서버가 기존에 남아 있는 소켓 파일로 인해 새로 시작하지 못한 상황이다. 비정상적으로 종료된 MySQL 프로세스가 소켓 파일을 점유하거나, 소켓 파일이 삭제되지 않은 상태로 남아 있을 때 발생한다.


📍 해결 방법

1. 실행 중인 MySQL 프로세스 확인

MySQL이 이미 실행 중인지 확인한다:

ps -aux | grep mysqld

2. 실행 중인 MySQL 프로세스 강제 종료

이미 실행 중인 MySQL 프로세스가 확인되면 강제로 종료한다:

sudo kill -9 <PID>
  • 모든 MySQL 프로세스를 종료했는지 다시 확인한다:
    ps -aux | grep mysqld

3. 소켓 파일 확인 및 삭제

MySQL이 사용하는 소켓 파일(/var/lib/mysql/mysql.sock)이 남아 있는지 확인한다.

sudo ls -l /var/lib/mysql/mysql.sock
  • 소켓 파일이 존재하면 삭제한다:
    sudo rm -f /var/lib/mysql/mysql.sock

4. PID 파일 확인 및 삭제

MySQL이 사용하는 PID 파일(/var/run/mysqld/mysqld.pid)이 존재하는지 확인한다.

sudo ls -l /var/run/mysqld/mysqld.pid
  • 파일이 남아 있으면 삭제한다:
    sudo rm -f /var/run/mysqld/mysqld.pid

5. MySQL 서비스 재시작

충돌 원인을 제거한 후 MySQL 서비스를 다시 시작한다.

sudo systemctl restart mysqld
  • MySQL 서비스 상태를 확인해 정상적으로 실행 중인지 확인한다:
    sudo systemctl status mysqld

📍 추가 점검

1. 데이터 디렉토리 권한 확인

MySQL 데이터 디렉토리(/var/lib/mysql)의 권한이 적절하지 않으면 소켓 파일을 생성하지 못한다.

sudo ls -ld /var/lib/mysql
  • 소유자가 mysql:mysql로 설정되지 않았으면 수정한다:
    sudo chown -R mysql:mysql /var/lib/mysql

2. 포트 충돌 확인

MySQL이 사용하는 기본 포트(3306)가 다른 프로세스에 의해 점유 중인지 확인한다.

sudo netstat -tuln | grep 3306
  • 포트가 사용 중이면 해당 프로세스를 종료하거나 MySQL 설정 파일(/etc/my.cnf)에서 포트를 변경한다.

3. MySQL 초기화

MySQL 데이터 디렉토리가 손상되었거나 초기화되지 않은 경우 문제가 지속될 수 있다.

sudo mysqld --initialize --user=mysql
  • 초기화 후 MySQL 서비스를 재시작한다:
    sudo systemctl restart mysqld

0개의 댓글