[Mysql] Access denied for user (using password: yes) 에러 발생

 

 

JPA 공부하면서 뭔가 혼자 해보려고 기존에 쓰던 h2데이터베이스 말고 다른 데이터베이스 뭘 쓸까 하다가 개인적인 작업이기 때문에 mysql 데이터베이스를 사용하려했는데...

 

 

하 뭐지

 

저 위에 나오는 에러에서 (using password: YES) 이 부분이 YES라는 것은 거의 비밀번호를 잘못 입력했을 때 나오는 에러라고한다...

 

계정도 방금 생성했고, 테스트하는 계정의 비밀번호는 개발 시작하고 지금까지 쭉 동일한 비밀번호를 사용했기 때문에 전혀 비밀번호가 틀릴 일이 없는데 ?

 

 

그래서 그냥 처음부터 다시 세팅했다.

 

C:\Users> mysql -u root -p

 

콘솔 창에서 mysql 루트 계정으로 접속한다.

 

mysql> use mysql

 

해당 모드로 변경한 후에

 

select host, user, authentication_string from user;

 

계정을 생성하지 않았다면 아무것도 나오지 않겠지만

 

create user 유저명@호스트명(ex.localhost) identified by '비밀번호';

 

쿼리를 입력하게 되면

 

+-----------+------------------+------------------------------------------------------------------------+
| host      | user             | authentication_string                                                  |
+-----------+------------------+------------------------------------------------------------------------+
| localhost | 유저명           | 패스워드                                                                |

 

이런식으로 나오게 된다.

 

그럼 여기서 권한을 주어야 하는데

 

 

grant all privileges on 해당 데이터베이스명.* to 유저명@호스트;

 

 

all은 모든 권한을 부여하려고 썼다. all 말고도 select 와 같은 다른 개별 권한도 줄 수 있다.

 

사실 여기서 저 계정을 입력하고 들어가면 되어야 하는거 아니야 ? 싶었는데 내 뜻대로 되지 않았기때문에...

 

 

alter user '유저명'@'호스트' identified with mysql_native_password by '비밀번호';

 

 

비밀번호 변경을 다시 해줬다.

 

 

flush privileges;

 

 

플러시는 습관처럼 작업 후 해준다.

 

 

성공...!

 

끝 !

 


* 추가 수정(2021-09-07)

 

 

이건 또 모야

 

회사 PC에서 세팅 해 놓은대로 집에와서 했는데... ? 집 컴퓨터에서 Public Key Retrieval is not allowed 라는 에러가 나버렸다 ㅎㅎ Mysql 8.0 이상의 버전은 드라이버 속성의 allowPublicKeyRetrieval=true의 설정을 해주어야 한다는데 ??

 

 

기본 커넥션 설정 옆에 Driver properties가 있다 !

 

 

성공 !

 

또 끝 !

+ Recent posts