Programming/Java

[Error : Mybatis/jdbc] ORA-12541:접속할 수 없습니다. host (host name) port 1521에 리스너가 없습니다.

mar1po5a 2025. 3. 15. 18:08

프로젝트를 진행하며 DBA를 담당하신 팀원분의 PC로 host를 지정해 해당 DB를 이용하고 있었고, 집에서는 전체 스키마 파일을 공유받아 내용이 동일한 DB를 새로 생성해 해당 DB로 작업을 진행하고 있었다.

root-context.xml에 HikariCP에 대한 설정을 작성해두었기에 DBA PC가 host인 jdbcUrl과 localhost가 host인 jdbcUrl 설정 두 가지를 입력해두고 상황에 맞게 주석 처리를 하여 작업해오고 있었는데, 오늘 갑자기 localhost DB로 접속할 수 없다는 오류가 뜨기 시작했다.

* 참고로 @127.0.0.1은 @localhost와 동일한 의미이다.

 

구글링과 AI의 도움을 받아 이거저거 시도해보았지만 오류는 해결되지 않았다. 정말 답답했는데 설마하는 마음에 찾아본 mybatis 설정 파일에 HikariCP에 대한 설정이 중복된 상태로 입력되어있었다.

중복 설정이 되어있었으니 오류가 날법도 했다. 지금까지 잘 돌아가던 게 의문일 정도였다.

 

추측컨데, root-context.xml의 HikariCP 설정이 우선시 되다가 어느 순간 MybatisConfig.java의 설정이 우선시 되도록 변경된 것 같다. Spring의 설정 우선순위가 변경되거나 빌드 과정에서 무언가 바뀌었을 가능성이 높다.

 

여차저차 이상한 오류 하나 잡는다고 시간을 너무 많이 잡아먹었다. 혹여나 같은 오류를 경험하고 있다면 jdbcUrl이 설정되어있는 다른 파일이 있는지 확인해보길 권장한다.

 

DB 연결 문제가 발생했을 때는:

  1. 연결 설정이 중복되어 있는지 확인
  2. 여러 설정 파일에서 같은 빈이 정의되어 있는지 확인
  3. 주석 처리가 제대로 되어 있는지 확인

이런 기본적인 것들이 가장 골치 아픈 문제의 원인일 때가 많다. 아무튼 해결해서 다행..