본문 바로가기
공부

db 스프링에 연결

by 자비리뷰 2023. 6. 12.

처음부터 만들려니 메이븐 프로젝트부터 꽤 막혔다.

 

어찌저찌 옛 노트정리를 보고

lombok, Spring Web, Spring Boot DevTools, JDBC API, Spring Data JPA, Spring Data JDBC, MariaDB Driver

를 추가하고 만들 수 있었다.

 

사실 추가의 이유를 Lombok만 제대로(?) 알고 DevTools는 왜 하는 지 모르고, 나머지들은 어렴풋한 짐작으로 알고있는 상황이라 나중에 왜 추가하는 건지 확인해 봐야 할 거 같다.

나중에 분명 안 하니 이거 작성하고 GPT에게 물어봐야겠다.

 

여튼 이걸 작성하고 controller, service, repository, entity는 비교적 수월하게 작성할 수 있었는데.

(수월하게 작성했다고 생각했는데 이 글을 작성하면서 보니 그냥 예전에 만든 것 따라친 것 뿐이라 다시 한 번 학습해야 할 거 같다.)

 

문제는 

application.properties였다.

 

이것도 이전 파일에서 필요한 부분을 복붙해 와 내 db랑 연결하도록 바꿨는데

스프링내장톰캣(?)이 계속 오류가 뜨며 접속이 안 되는 것이었다.

 

2023-06-12T18:02:32.277+09:00 WARN 29048 --- [ restartedMain] o.m.jdbc.message.server.ErrorPacket : Error: 1045-28000: Access denied for user 'root'@'localhost' (using password: YES)

이렇게 오류가 떠

YES가 인상적이어서 GPT에게 패스워드는 맞는 것이냐고 물어보니 그냥 '비밀번호를 이용해 접속을 시도한 것'이라는 대답이 왔다.

 

잘 모르지만 'root면 다 접속 돼야 하는 거 아닌가'라는 생각이 있었지만다른 사람들은 user를 새로 생성해서 접속한다고 하니

 

새로운 user를 만들어봤다GPT의 말로는

CREATE USER '새로운사용자이름'@'localhost' IDENTIFIED BY '비밀번호';
GRANT ALL PRIVILEGES ON mrtongue.* TO '새로운사용자이름'@'localhost';
FLUSH PRIVILEGES;

이렇게 만들라고 해서 만들고

30분 동안 계속 에러로 접속이 안 됐다.

온갖 똥꼬쇼를 하다보니

어떻게 닿은진 모르지만

 

내 사용자(?)에게 일부 권한만 있고, 데이터베이스 및 테이블에 대한 권한은 포함하지 않는다는 이야기를 들었다.

 

결국 어찌저찌해 

 

권한을 주게 되었다.

+------------------------------------------------------------------------------------------------------------+
| Grants for yoo@localhost                                                                                   |
+------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO `yoo`@`localhost` IDENTIFIED BY PASSWORD '*1' |
+------------------------------------------------------------------------------------------------------------+
1 row in set (0.001 sec)

MariaDB [mysql]> show grants for 'yoo'@'localhost';
+------------------------------------------------------------------------------------------------------------+
| Grants for yoo@localhost                                                                                   |
+------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO `yoo`@`localhost` IDENTIFIED BY PASSWORD '*' |
| GRANT ALL PRIVILEGES ON `mrtongue`.* TO `yoo`@`localhost`                                                  |
+------------------------------------------------------------------------------------------------------------+

위에서 아래와 같이 권한이 바뀐 거 같고

그 이후로

Postman을 통해 get으로 데이터를 받아올 수 있었다.

 

이 거 성공하고 너무 기뻐서 한 시간 동안 개 뻘짓하고 있었다.

어서 나머지 작업을 수행해야 할 거 같다.

 

다음 작업은 fetch를 넣을 거 같다.

'공부' 카테고리의 다른 글

예외처리  (0) 2023.08.18
김영한 http강의 - http 메서드  (0) 2023.08.17
김영한 http강의  (0) 2023.08.17
table과 div  (0) 2023.06.11
document.querySelector() VS document.getElementById()  (0) 2023.06.11