-
[개발노트] Spring + JPA + Oracle 연동 문제해결Programming/Note 2021. 3. 5. 10:22
프로젝트를 위해 정리한 글입니다. (완료)
문제점
(초기에 사용한 오라클 설치에 참고한 자료: goddaehee.tistory.com/191)
- SQL Developer에서나 IntelliJ의 datasource tap을 이용해서 DB를 조작하는 데에는 문제가 없었다.
- 하지만 Spring 프로젝트에서는 DB에 접근하지 못했다.
해결시도
1) 기존의 오라클 sw 사용 : 노트북 세부사항 확인(listener.ora, tnsnames.ora 파일 수정), 방화벽 체크.... [실패]
- 참고자료 : jhnyang.tistory.com/272
2) 기존 버전 삭제 후 다른 오라클 버전 사용[성공]
1. 기존의 오라클 사용하여 시도
프로젝트를 실행하면 다음과 같은 오류가 발생했다.
The Network Adapter could not establish the connection.
1) 1차시도 : 세부사항 확인 <관련파일 : listener.ora, tnsnames.ora>
오라클 Home의 dbhomeXE 디렉토리 아래 리스너와 tnsname 파일을 확인해보자.
오라클 db와 연결하기 위해서 오라클 리스너가 요청을 받아들여야 하는데, 이 때 해당 파일들의 설정값이 일치해야 한다. 파일들의 세부 내용을 확인해보자.
- 일단 오라클 설치 경로 찾기
- 찾았따. C:\oraclexe\app\oracle\product\11.2.0\server
- 관련파일들 찾기 C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN
1-1) HOST값 확인
- 오라클 11버전 HOST값 : 내 호스트명(컴퓨터명)
- 내 컴퓨터 이름을 HOST값에 넣어주자.
- listener.ora 수정
- tnsnames.ora 수정
1-2) 서비스 네임 확인
tnsnames.ora에 등록된 서비스 네임이 동일해야 한다.
- SQL Plus에서 서비스 네임 확인
- 드래그한 부분과 SERVICE_NAME 모두 'XE'로 제대로 설정되어있다.
- 서비스 중지했다가 실행해보자.
- OracleServiceXE 실행 중인거 확인, OracleXETNSListener 중지했다가 다시시작해보자.
결과
- 오라클을 껏다 키거나 컴퓨터를 재부팅해보자
결과
그래 역시 안된다. 다른 방법으로 시도해보자.
2) 2차시도 : 서비스, 방화벽 체크
세부사항이 안맞아서가 아니라 서비스 자체가 실행되지 않았을 수도 있다고 한다.
spring에서만 접근을 못하기 때문에 이 문제는 아닌 것 같았지만 일단 시도해보았다.
- 방화벽 인바운드 규칙에서 새규칙 만들기
- 서비스 열어서 listener 다시 실행
결과
3) 3차시도 : 환경변수 확인
오라클 설치 위치가 잘 잡혀있는지 확인해보라는 글을 보았다. 이것도 아닌 것 같지만 일단 보기로..
- 환경변수에 path 제대로 등록되어 있었다.
1,2,3 방법을 모두 시도하고도 db접속이 불가능하다면 포트를 변경하거나 재설치하는 것을 권하더라....
.............
일단 한번 cmd에서 오라클 리스너가 동작하고 있는지 확인해봤다.
- 서비스들어가서 오라클 프로그램을 다 실행시켰다.
참고: travelbeeee.tistory.com/396
- cmd에서 확인
- 희망을 가지고 다시 실행해보기
근데 처음과 다른 메세지가 출력되었다.
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
해당 메세지를 해결해보자.
- 참고 : holics1226.tistory.com/19#gsc.tab=0
- sql developer가서 DB 접속 이름들을 살펴보았다.
- hoxy..?하고 바꿔봤... ㅋ
결과
- 그럼 HR 접속 말고, 다른 접속들이 SQL Developer에서 접속되는지 테스트해보았다.
- XE 테스트
ORA-01017 : invalid username/password; logon denied
생각해보니까 난 저런 접속을 따로 만든적이 없었다 ㅇㅂㅇ 뭐지.... 몰라...
- 참고 : blog.naver.com/PostView.nhn?blogId=firstpcb&logNo=220319407686
- 참고: m.blog.naver.com/baekmg1988/221298569322
- 접속계정을 확인했더니 블로그 글과 같이 'SYS'라고 출력되었다.
SYS로 application.properties를 변경해보았다.
결과
- 호스트 이름을 localhost로도 바꿔보았다.
응 안돼!
그냥 재설치가 답인둣..^^
2. 삭제 후 오라클 다른 버전 설치해보자
내 컴퓨터에서만이 아니라 현명님 컴퓨터에서도 스프링 프로젝트에서 해당 db접속이 안되었다.
아마 이 오라클 버전이 무슨 문제가 있눈둡..?
삭제하고 다른 버전을 깔아보기로 했다.
1) 삭제
- 참고 : dreamlog.tistory.com/589
2) 재설치
- 참고: javacoding.tistory.com/113
처음에 받았던 것은 11g express edition이었는데 enterprise edition으로 받아보려했다.
그런데 너무 무겁고 다른 블로그 글을 보니까 enterprise를 깔아야 spring이 된다는 말은 없었다.
google : spring oracle express
설치
- 참고: [스프링 #03 오라클 db 연동]
이 버전을 받았다.
- 참고 : offbyone.tistory.com/13
오라클 + SQL DEVELOPER 설치
16. 8080 포트를 점유하고 실행되고 있는 Oracle HTTP Listener 를 중지하기 위해서 명령창을 열고 다음 명령을 실행 합니다.
출처: https://offbyone.tistory.com/13 [쉬고 싶은 개발자]새로 깔으니까 스프링에서도 db접속 되었다. ㅠㅠㅠㅠ
해결!
'Programming > Note' 카테고리의 다른 글
[개발노트] Spring Security + JWT + React(SPA) 진행 상황 (0) 2021.03.13 [개발 노트] Spring Security + JWT + React(SPA) 디버깅 과정 (0) 2021.03.13 [개발노트] 영화 커뮤니티 웹사이트 (1) 2021.03.03 댓글