Mysql 에러

정재현·2022년 2월 17일

로컬환경에서 mybatis mapper에 테이블 명을 대소문자 구분 없이 구현해도 이상이 없었다.
배포과정에서 같은 코드를 실행하면 테이블이 존재하지 않는 에러가 발생.

1. 이유

윈도우에서 mysql은 대소문자를 구별하지 않지만 linux나 unix계열에서는 대소문자를 구분.
윈도우에서는 디렉토리와 파일에 접근할 때 대소문자구분 x
리눅스/유닉스는 대소문자를 구별해 영향을 받게 된다.

2. 해결

테이블을 소문자로 만들었지만 mybatis xml파일에 테이블명을 대문자로 작성해 실행할 때 발생.
테이블 명을 맞춰주거나 my.cnf파일에 lower_case_table_names = 1로 해주면 대소문자 구분하지 않는다.
설정 전에 생성한 데이터베이스나 테이블은 대소문자구분하므로 다시 만들어줘야함.

mysql 공식문서 : https://dev.mysql.com/doc/refman/8.0/en/identifier-case-sensitivity.html

profile
back end개발자로 성장하기

0개의 댓글