Troubleshooting: 무엇이 문제였는가?/본캠프 3주 차: 일정 관리 앱 Develop

2단계: "MySQL Error 1049: Unknown database"

writingforever162 2024. 12. 15. 21:23

[인용 및 참고 자료 출처]

1. 구글 검색: 티스토리, "spring.jpa.hibernate.ddl-auto=create", ddl-auto 설정 시 주의 사항, (2024.12.15)

 

[문제]

이젠 프로그램을 실행할 때 오류가 안 나면 이상할 지경이다. 데이터베이스(database)를 제대로 생성한 줄 알았는데 아니었다. 오류 메시지를 볼 때마다 심장은 아직 철렁거리긴 하나, 이미 전날 새벽에 데이터베이스와 씨름한 전적이 있는지라 담담한 마음으로 데이터베이스를 확인했다.

 

[원인]

오류가 발생한 원인은 역시나, 데이터베이스가 이상하게 만들어진 데에 있었다. plans2라는 이름으로 데이터베이스를 만든 줄 알았는데 테이블로 생성되어야 할 'members2'가 데이터베이스로 있었다.

 

[해결]

문제는 금방 해결했다. 새벽에 불필요한 데이터베이스를 확실하게 지웠듯이 맥북의 터미널을 열어서 'members2' 데이터베이스를 삭제했다.

 

(1) [링크] 맥북에서 터미널 여는 법

(2) [링크] MySQL의 데이터베이스 삭제하는 방법 

불필요한 데이터베이스를 삭제한 뒤에는 인텔리제이(IntelliJ) 콘솔(console) 창에서 'plans2'라는 이름으로 데이터베이스를 생성했다. 그다음 프로그램을 실행한 결과, application.properties에 'create'라고 입력한 대로 일정과 사용자 정보를 저장하는 테이블(table)이 각각 잘 생성되었다. 

spring.jpa.hibernate.ddl-auto=create

지금은 8단계 과제 중 겨우 2단계라 개발 초기 단계인 만큼 create로 입력했다. 1단계 과제에서 none으로 바꾼 다음 직접 테이블을 생성했다가 필요 없는 데이터베이스를 실컷 만든 새벽의 악몽이 떠올라서. 튜터님의 말씀을 빌리자면, 실무에서는 뒤도 안 돌아보고 none이라고 명시한다고. 특히 운영 서버라면 기본값이 none이어도 꼭 none을 다시 입력하고, 보통 none 아니면 validate 둘 중 하나만 쓴단다. 아마 이번 과제에선 3단계와 도전 과제 7단계에서 none을 쓰지 않을까 싶다.

 

[결과 수치화]

[수정 전] 'MySQL Error 1049: Unknown database' 1건 발생 

[수정 후] 'MySQL Error 1049: Unknown database' '0건 발생