CentOS 8이 설치되어 있는 새로운 서버를 받아서 환경 구성을 해야 하는 상황이였습니다.
기존 서버는 오래동안 서비스가 된 오래된 서버였고, mysql 버전도 5.5.40, 톰캣도 7, 자바 7을 쓰는등 올드한 버전들을 사용중인 서버였습니다.
너무 최신버전으로 갑작스레 올리면 여러가지 문제점을 발생할 것이라 생각하여, 최대한 비슷한 버전들로 설치하고 싶었지만 (톰캣과 자바는 높은버전으로 가기로 했습니다. 추후 자바8 문법 적용을 위해) CentOS 8에서 기본적으로 설치되는 DB가 mariaDB이기도 하며, mysql default 버전도 mysql 8.0 이였습니다.
특정 버전 설치 방법인 yum 설정 방법으로 다운로드하면 계속해서 8로 다운로드가 진행되고,
5.5 tar를 받아서 진행하면 종속성에러 발생...
바이너리 설치 방법을 따라서 진행하다보니 gcc에러 등
해볼 수 있는 방법을 모두 시도했지만 설치에 실패하였습니다.
결국 mysql 8 로 설치해보고 모두 구성하여 was를 동작해보니 5분도 안되서 여러가지 문제가 발생했습니다.
엄격한 문법이라는 모드(sql_mode)가 생겼는데, 잘 못된 문법등이 있으면 에러가 발생합니다.
이미 기존 레거시부터 전해오는 소스라 이제와서 갑자기 모두 변경하기엔 이슈가 있었고, 불가피하게 설정에서 엄격 모드를 off(sql-mode = "NO_ENGINE_SUBSTITUTION")시키고, 또 다른 쿼리들을 테스트해봤는데, 기존 5.5.40에서 0.03초면 동작하던 쿼리가 3분이 넘도록 결과가 나오지 않았습니다.
where 절에 존재하는 exists 메소드에 따른 속도 저하 이슈였는데, 인덱스 세팅 및 여러가지 옵션을 변경해봐도 결과는 똑같고 explain 실행 계획을 봐도 type이 ALL로 변경되어 index를 안타고 풀스캔이 되는 등 문제가 발생했습니다.
시간적 여유가 있으면 쿼리 튜닝이나 다른방법을 찾아보겠지만, 이럴 시간이 없었고 지원이 가능한 제일 낮으 버전 5버전대 중 5.7로 눈을 돌리고 설치 후 정상동작을 확인했습니다.
아래는 CentOS 8 에서 mysql 5.7 버전 설치 방법입니다.
'ETC. > 프로젝트 히스토리' 카테고리의 다른 글
Spring - was는 정상적으로 동작하지만 스케줄러가 동작하지 않는 현상 (0) | 2022.05.20 |
---|---|
웹 해킹대회 후기 (0) | 2021.11.12 |
IE(익스) 에서만 새로고침시 resources 파일들(js, css, image) 400 에러 발생 (0) | 2021.02.01 |
OutOfMemory, tomcat log 설정 문제(원본 소스가 없어요 ㅠ.ㅜ) (2) | 2020.06.04 |