Post

버전의 늪

버전의 늪


삽질 일지… 쓸지 말지 많이 고민했던 category이다. 나중에 보면 ‘이런 부분도 남겼어?’ 라는 생각이 들 것 같았다. 하지만 ‘삽질’을 모으고 모으다 보면 도움이 되지 않을까? 그리고 사소한 문제라도 삽질하면 시간이 많이 소요되는데, 이 시간을 그냥 버리기는 아까웠다. 그래서 간단하게 기록하기로 했다!


발단

어느 날 저녁, ‘DOORE’ 서비스에 텃밭 조회 API에 존재하는 팀에 대한 검증이 누락된 것을 수정하기 위해 컴퓨터를 켰다. 평소처럼 코드 최신화를 하고, Database를 켜고, 테스트를 실행하려 하는데, 아래와 같은 에러가 떴다.

1
2
Starting MySQL
... ERROR! The Server quit without updating PID file (/usr/local/var/mysql/##.local.pid).

MySQL을 오랜 기간 사용했지만 처음 보는 오류라서 당황했다. 갑자기 왜..? 오류 메시지를 보니 update 문제인가 생각했다. 그리고 오류에 대해 구글링을 해봤는데, 해결 방안을 정리하면 다음과 같다.

해결방안

  1. 소유자 변경
  2. 권한 변경
  3. 재설치

실패

  1. 우선 소유자 변경을 해보았다. 컴퓨터 이름, mysql, 동적으로 사용자 할당 등 변경해 보았지만 해결되지 않았다.
  2. 다음으로 권한 변경을 해보았다. 당연히 해결되지 않았다. 또한 해결 방법을 보니 대부분 권한을 777로 주었던데 개인적으로 모든 권한을 허용하는 것은 너무 위험하다고 생각했다.
  3. 마지막으로 재설치를 해보았다. 이것도 안됐다. 심지어 재설치 후 1번과 2번을 다 시행해봤는데 모두 안됐다.

오류메시지

어떻게 해야 할지 고민하다가, ‘재설치를 했으니 버전 문제인가?’ 라는 생각을 했다.

MySQL 버전을 확인해보니 버전이 9.x.x였다.

그래서 MySQL 버전을 8.0으로 지정해서 다시 재설치를 했다. 하지만 오류는 계속되었다. 실행은 되는데 뜨자마자 바로 stopped 되었다. 또 고민하다가 에러 로그를 확인해 보았다.

1
tail -n 50 /opt/homebrew/var/mysql/##.local.er

image4-1

지금 깔려있는 8.0.42 버전이 낮다는 내용이었다. (8.3.x 이상의 버전이 필요)

정리하면 ‘DOORE’의 테스트를 정상적으로 시행하기 위해서는 9.x.x 미만 버전 && 8.3.x 이상 버전이 조건이다.

그래서 8.4 버전을 깔아보았다. 8.4 버전을 선택한 이유는 LTS 버전이기 때문이다.

결과 및 깨달은 점

드디어 정상 작동이 되었고, MySQL 서버도 죽지 않고 잘 떠있었다. (테스트도 잘 돌아갔다.)

지금 생각해보니 며칠 전 성능 테스트를 위해 Jmeter를 깔면서 homebrew upgrade를 했는데, 그때 MySQL 버전이 올라간 것 같다. (이제는 버전을 지정해 둬서 올라가지 않을 것이다.)

  • 초기에 update 관련 문제라는 것을 알았다면 바로 버전 문제를 생각했어야 했는데, 구글링 해서 삽질했다.
  • 에러로그를 먼저 확인했다면 빨리 알 수 있었지만, 줄줄줄줄 나오는 로그를 읽기 귀찮아서… 미루다가 늦어졌다. (IntelliJ처럼 핵심 에러를 구분해주면 좋겠다.)

결론은.. 버전은 중요하다! 그리고 에러로그 확인 잘하자!

총 삽질 시간 : 2시간

번외

버전 이슈를 겪고, 이건 삽질 일지에 넣으면 좋겠다는 생각을 하며 오랜만에 블로그에 들어왔다. 그런데 기본 파비콘이 눈에 띄었다. 파비콘을 업데이트하고 올렸는데, build 오류가 떴다.

image4-2

image4-3

에러 로그를 보니 또 버전 문제였다!!!! yml을 보니 ubuntu - latest로 설정되어 있었다. 또 최신 버전이 문제다.

다행히 22.04로 버전 지정 했더니 정상적으로 배포되었다.

This post is licensed under CC BY 4.0 by the author.