728x90
반응형
에러:  
[org.mariadb.jdbc.message.server.ErrorPacket] Error: 1146-42S02: Table ' DB명.테이블명 ' doesn't exist

 

◆ 증상


개발서버에서 DB테스트를 마친후 개발서버의 DB덤프파일을 만들어 운영서버에 올린뒤 프로그램 기동을 하니 위와같은 에러가 발생.

 

 

◆ 에러 발생 원인


OS별로 DB의 default value가 달랐던게 원인이었다.

윈도우 환경에 설치된 개발DB는 default가 대소문자 무시이기 때문에  테이블의 대소문자가 일치하지 않아도 에러가 발생하지 않았었지만,  리눅스 환경에 설치된 운영DB는 default가 대소문자 구분이기 때문에  테이블의 대소문자가 일치하지 않는 경우 에러가 발생 했었던 것이다.

실제 확인해 보니 작성한 마이바티스 로직속 SQL은 테이블을 대문자로 호출, 운영DB의 테이블명은 소문자였음.

 

 

◆ 해결방안


대소문자를 무시하도록 설정을 변경하는것도 하나의 방법이겠지만, SQL문과 실제 테이블명의 대소문자를 맞춰주는게 좋다고 판단하여 운영DB의 테이블명을 대문자로 변경하여 맞춰준 후 확인해보니 에러없이 잘 돌아감.

 

 

참조
MariaDB 10.4 대소문자 구분 설정하는 방법
https://yjh5369.tistory.com/entry/MariaDB-104-%EB%8C%80%EC%86%8C%EB%AC%B8%EC%9E%90-%EA%B5%AC%EB%B6%84-%EC%84%A4%EC%A0%95%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95

글 내용 중 잘못된 부분이 있거나, 첨부하실 내용이 있으시면 댓글로 남겨주세요. 공부하는데 많은 도움이 됩니다.
-- 기억의 유효기간은 생각보다 짧다. --
728x90
반응형