RDBMS/MySQL

[장애 대응] ERROR! MySQL Is Running But PID File Could Not Be Found

조맹지 2021. 8. 10. 09:18

해당 에러가 발생한 이유에 대해서는 여러 가지가 있겠지만

내가 발생한 케이스의 경우 mysql가 운영 중인 상태에서 도메인이 변경되서 발생한 문제였다.

 

도메인을 변경하면 기존에 pid 즉 프로세스 id가 이전 도메인을 물고 있는데

그러다 보니 mysql.service status or stop or start 같은 명령어 수행 시 아래 에러가 발생한다.

 

$ mysql.service status
ERROR! MySQL Is Running But PID File Could Not Be Found

 

해결 방법은 아래와 같다.

 

1. mysqld로 조회해서 띄어져 있는 프로세스를 확인한다.

(내가 수행했던 서버에서는 mysqld_safe 프로세스도 함께 띄어져 있었음)

# ps -ef | grep mysqld
mysql     118932       1  8 Aug03 ?        13:34:28 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
root      230057  212397  0 02:03 pts/1    00:00:00 grep --color=auto mysqld

 

2. 조회된 프로세스를 kill 한다.

$ kill -9 118932

 

3. 다시 status 조회 시 아래와 같은 에러가 발생. 아래 경로에 있는 파일을 삭제한다.

$ service mysqld status
ERROR! MySQL is not running, but lock file (/var/lock/subsys/mysql[FAILED]
$ rm /var/lock/subsys/mysql

 

4. 모두 삭제 완료되면 start 

$ mysql.server start
Starting MySQL.....                 [  OK  ]

 


참고 자료

https://www.filerepairtool.net/blog/fix-mysql-server-pid-file-could-not-be-found-error