해당 에러가 발생한 이유에 대해서는 여러 가지가 있겠지만
내가 발생한 케이스의 경우 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
'RDBMS > MySQL' 카테고리의 다른 글
| MySQL FLUSH PRIVILEGES 동작 (0) | 2022.02.14 |
|---|---|
| MySQL bin log 삭제 방법 (0) | 2021.10.19 |
| MySQL SSL 설정 끄기. have_openssh, have_ssl DISABLED (0) | 2021.10.19 |
| MySQL 주기적으로 Replication 확인 방법 (0) | 2021.08.12 |
| MySQL Federated 엔진 동작 및 사용 방법 (0) | 2021.08.04 |