개요
2017년 04월 03일 3시 26분 쯤 부터 블로그 접속시 “데이터베이스 연결 중 에러” 라는 메시지가 반겼다.
그 때, 나는 python3 관련해서 종속성 관련해서 해결 하느라고 sudo apt-get autoremove 를 했는데, 하필이면 mysql-server-core-5.7 까지 함께 날라간 것이였다.
이것은 급하게 deb 파일로 dpkg -i 인스톨을 통해 복구를 했지만, DB 연결 오류는 해결이 되지 않았다.
따라서 이것을 해결했던 방법을 공유해보자 한다.
/dev/null 가리키는 현상 복원하기
현재 상태

위 이미지와 같이 sudo systemctl status mysql
(혹은 sudo service mysql status
)를 입력하니 아래와 같이 표시되었다.
1 2 3 4 5 6 7 8 9 10 | LOL@YOLO:/lib/systemd/system$ sudo systemctl status mysql ● mysql.service Loaded: masked (/dev/null; bad) Active: inactive (dead) since Mon 2017-04-03 15:20:47 KST; 1h 33min ago Main PID: 1201 (code=exited, status=0/SUCCESS) Apr 03 15:20:45 ubuntu systemd[1]: Stopping MySQL Community Server... Apr 03 15:20:47 ubuntu systemd[1]: Stopped MySQL Community Server. Apr 03 16:07:54 ubuntu systemd[1]: Stopped mysql.service. Apr 03 16:34:51 ubuntu systemd[1]: Stopped mysql.service. |
mysql.service 가 말 그대로 /dev/null 을 가리키기 때문에 문제가 있다는것을 알려주는 메시지 이다.

따라서 나는 cd /etc/systemd/system
를 입력해, system 폴더로 들어가서 ls -la
를 입력해보니 실제로 mysql.service 가 Symbolic Link 로 /dev/null 을 가리키고 있다는것을 알아냈다.
해결법
너무나도 간단했다. 저것의 원인은 Windows 로 설명을 하면 실행을 위한 원래의 파일은 없고, 바로가기 (lnk)파일만 존재해서 발생하는 현상이다.

sudo systemctl unmask mysql
를 입력해서 mysql 에 대한 심볼릭 링크를 제거한다.
제거 하고, sudo service mysql start
를 해보니 에러 메시지 없이 정상적으로 잘 실행이 되었다.
끝으로
서버를 여는 사람 입장에서 이런 문제가 발생하면 많은 골칫거리가 생기게 된다.
구글링을 통해 찾아내는것이 가장 최선이라고 판단을 한다.
또한, 서버를 열면서 아직 부족하다고 느낀점이 많았기에, 더욱 더 열심히 리눅스를 배워야 겠다고 생각한다.
그리고, 항상 백업을 생활화 하는것이 무엇보다 중요하다고 본다. 적용과 원복은 뗄 수 없는 관계이며, 백업은 필수다.
나와 비슷한 /dev/null symbolic link 문제로 고통받는 사람이 없길…