Database

[ERROR] MySQLSyntaxErrorException: Table doesn't exist ..

코딩공부 2021. 12. 7. 16:34

에러 상황 

 

Ubuntu 20.04 테스트 서버에 mariaDB 스키마 추가 후 계정 생성 및 권한 설정 후 소스코드를 실행시에 해당 에러 발생

 

[ Intellij 콘솔 ]

 

Table 'test.COMTNEMPLYRINFO' doesn't exist 

 

해당 데이타베이스에 [테이블]이름을 가진 테이블이 존재하지 않을때 발생

다른 서버에서 dump를 떠와서 테스트 서버로 restore 했기 때문에 테이블은 존재하지만 에러가 발생했다는 것을 인지


해결 

 

Mysql 기본 설정으로 테이블의 대소문자 구분을 설정 되어있음. 

 

show variables like 'lower_case_table_names';

 

Ununtu Mysql 설정 : /etc/mysql/mariadb.conf.d/50-server.cnf 

 

vim /etc/mysql/mariadb.conf.d/50-server.cnf 

 

50-server.cnf

[mysqld] 하단에 lower_case_table_names= 1 추가

sudo service mysql restart - 서버 재시작 

 

 

mysql에서 show variables like 'lower_case_table_names'; 

value가 1로 변경 된것을 확인 하고 접속시 재대로 접속 되는것을 확인

 

 

Value 값에 따른 설명

0 : 테이블 생성 및 조회시 대소문자 구분 함 [ default ] 

1 : 입력값이 대소문자 상관없이 소문자로 인식하여 소문자 인식 파일 생성함.

2 : 윈도우에서 대소문자 구분해서 테이블 가져옴