mysql를 설치한 후 root계정(username=root), spring계정(username=spring) 이렇게 두개를 만들 예정이었다. root계정은 기본적으로 만드는 것이기 때문에 어렵지 않게 만들었다.
그리고 spring계정을 만들려고 했는데

access denied for user 'spring'@'localhost'
이런 에러가 나왔다. 해석해보자면 spring이라는 user의 접근을 제한한다는 의미다. 보통 이런경우는 비밀번호를 잘못 입력하면 생긴다고 하였는데 나는 학교과제로 진행한거라 비밀번호가 이미 정해져있었고 잊어버릴 수가 없었다.... 그래서 username의 문제라고 하니 root로 진행해보자 했는데 root로 동일한 결과였다.
언제나 그렇듯 또 열심히 구글링을 하였는데 이 에러를 검색하면 가장 먼저 나오는 블로그에서 해결책을 봤다. mysql workbench -> server -> Users and Privileges를 들어가면 root user을 볼 수가 있다. 해당 블로그에서는 비밀번호를 만들 때 있는 조건을 만족하지 못해서 에러가 난거였는데 나는 비밀번호를 바꿔도 그대로였다. (왜나만안돼)
그리고 화면을 바라보며 한참을 생각한 결과, 내가 username으로 사용하려고 한 spring이라는 user가 없으므로 연결할 수 없는게 당연하다는게 떠올랐다.
Q. 그럼 root로 했을때는 왜 안되는걸까?
A. 사실 이전에도 username을 spring으로 하면 안됐는데 그때는 그냥 root로 했더니 됐었고 다른 에러때문에 mysql을 지우고 다시 설치해서 똑같은 방법으로 진행하니 안됐다. 왜 되고 안되는지 나도 잘 모르겠다...

이런식으로 username에 spring으 추가하였다. 비밀번호는 초기에 지정한 값과 동일하게 하였고 다행히 잘 연결이 됐다. 여기서 끝이면 얼마나 좋아
스키마를 생성하고 테이블을 생성하려는데, spring user로는 테이블을 생성할 수 없다고 한다.....
아마도 spring의 From Host를 '%'로 지정해서 그런 것 같다. 그이유는 둘의 차이점 때문!
%: 외부의 모든 아이피에서 접속할 때 사용
localhost: local에서 접속 할 때 사용

나는 local에서 사용하니 spring의 Host도 local로 변경해줬는데 역시 안됨...^^
아마 여기까지도 안된사람이 있을까 싶지만 권한이 root에게 있어서 spring으로는 table생성이 안되는 것 같다.
grant all privileges on 데이터베이스명.테이블명 to 계정명@호스트명 identified by 비밀번호
사용자 권한주기 명령어로 spring에게도 권한을 주니 겨우 됐다.....
(나는 과제제출을 위해 코드에서 사용자의 이름을 변경하였고, 추후에 사용자권한을 줘서 한번 더 해봤다)