우리 프로젝트에 mariadb를 사용했는데 로컬에서 어플리케이션을 실행해보니 갑자기 테이블이 없다고.. 오류가 나왔다...
뿐만 아니라 배포한 상태에서도 아래의 오류가 나왔다.
Error querying database.
Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table [테이블 명]
문제상황
그래서 찾아보니 리눅스 환경의 경우 db에서 대솝문자를 구분하게 설정하여 설치되어 있을 수도 있다고 한다.
처음 들어보는 이야기다... 그냥 항상 잘되서 아무 문제 없을 줄 알았는데...
그래서 다음 명령어를 통해 대소문자를 구분하는 지 확인 하였다
show variables like 'lower_case_table_name';
Value | 의미 |
0 | 대소문자를 구분 |
1 | 대소문자 구분하지 않음 |
나의 경우 0으로 되어있었다. 그래서 1로 변경해야하는 상황이다.
해결방법
aws에서 ec2 docker에 mariadb를 컨테이너를 실행하여 사용했기때문에 그 기준으로 해결방법을 설명할 것이다.
sudo docker ps
sudo docker exec -it (mariadb컨테이너 이름) /bin/bash
mariadb 컨테이너가 실행되고 있다는 전제하에 ps를 통해 mariadb컨테이너 이름을 찾은다음
db로 들어간다.
이후
mariadb -u root -p를 치고 password에 db 패스워드를 치면 db접속 성공
일단 대소문자 구분 설정이 어떻게 되어있는지 확인하기 위해
show variables like 'lower_case_table_name';
한다. 나의 경우 0으로 되어있었기 때문에 1로 변경해준다
exit통해서 일단 나가주고
apt-get update
apt-get install -y vim
패키지 목록을 최신 상태로 업데이트한후 vim 편집기를 설치한다.
위의 명령어를 차례대로 친후
vim my.cnf
[mariadbd]에
lower_case_table_name=1을 추가하던가 0이었던것을 1로 변경해준다
그리고 저장해주고 해당 mariadb 컨테이너를 종료시켜주고 다시 실행한후 위의 초반과정을 통해 다시
show variables..... 를 쳐주서 바뀐지 확인하고 1이면 성공!!!
정말 처음 만난 에러라서 당황했다. 그래서 우리팀원들이 모여서 왜 저러지..3시간을 고민한 끝에 db자체의 설정문제임을 깨닫고 변경해주었더니 로컬에서든 aws에서든 잘 실행되었다
'프로젝트 > 협업 프로젝트(2023.12.18-2024.01.25)' 카테고리의 다른 글
[Key Word 개발기] Redis pub/sub 실시간 알림 적용기 (0) | 2024.02.09 |
---|---|
[Key Word 개발기] Server-Sent Events ?? 알림기능?? (1) | 2024.02.08 |
[Key Word 개발기] 스프링 이벤트 적용하기 (1) | 2024.01.21 |
[Key Word 개발기] 젠킨스 파이프라인 스크립트 형상관리 (1) | 2024.01.21 |
[Key Word 개발기] Git submodule + 배포 적용기 (1) | 2024.01.21 |