당시 나의 상황은

local에서 db를 연결하여 개발 완료 -> local db를 aws rds로 변경 했던 상황이었다

회원가입 및 로그인은 잘 되는데, 갑자기 위젯 관련된 기능을 실행시키면 오류가 떴다

Table doesn't exist.............

바로 DB를 켜서 테이블을 확인해보니...? 멀쩡하게 있다

혹시 내가 오타를 썼나? 했는데 오타도 없다......

 

 

해결법

SQL를 배울 때, SQL은 대소문자를 구분하지 않는다고 배웠다

하지만....구분한다...........linux에서는........... (window에서는 구분하지 않는다고 한다)

 

근데 mac에서 작업한 나는 왜 이제서야 알게되었나..?

=> 우선 이 설정은 lower_case_table_names 변수의 값부터 알아보는 것이 좋겠다

  • 0 (linux 기본값) : 대소문자 구분 O
  • 1 (window 기본값) : 대소문자 구분 X, 모두 소문자로 인식
  • 2 (mac 기본값) : 대소문자 구분하여 저장. 하지만 비교시 소문자로 비교

 

그랬다....mac에서도 소문자로 비교하기에 몰랐었다.....

하지만 rds는 linux기반이었기에 대소문자를 구분하고 있었고, 당장 lower_case_table_names를 1로 바꾸었다

 


마치 중학교때 √-1가 없다는 것을 배우고, 고등학교때 가서 허수라는 개념을 알았을 때의 충격과도 같달까...

lower_case_table_names이라는 설정이 있던것도, 운영체제에 따라 다르다는 것도 이번 기회에 알게 된 사실이었다

 

복사했습니다!