[Mysql] Access denied for user (using password: yes) 에러 재발생 되다가 안될 때 (feat. 3306포트)

 

 

 

해당 글은

 

일반적인 Access denied for user (using password: yes)

 

에러 발생과 다른 내용을 다룹니다.

 

일반적인 에러에 관한 내용은 아래 글을 참조하시길 바랍니다.

 

 

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

 

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

[Mysql] Access denied for user (using password: yes) 에러 발생 JPA 공부하면서 뭔가 혼자 해보려고 기존에 쓰던 h2데이터베이스 말고 다른 데이터베이스 뭘 쓸까 하다가 개인적인 작업이기 때문에 mysql 데이.

dbsyys.tistory.com

 

 


 

 

지난번에 Mysql user의 비밀번호, 권한 문제로 인해 포스팅을 해놓고

 

접속 성공하는 것까지 확인을 했는데

 

아무것도 건들지 않고 시간이 조금흘렀는데..?

 

 

왜 ?

 

 

권한도 확인했고, user, host, 비밀번호도 맞는데...? 

 

지난번에 포스팅 한대로

 

계정 삭제 했다가 권한 다시주고 비밀번호 설정도 하면서 몇번씩 삽질하다가

 

이정도면 뭔가 DB 설치 한것에도 문제가 있나 ? 싶어서

 

디비 삭제 했다가 다시 깔려고도 마음먹었다가

 

뭔가 되었다가 안되는건 다른 문제가인가 싶어서 검색을 해봤는데

 

...

 

긴말 안하고 이미지로 보여 드리겠습니다.

 

 

 

 

 

 

 

 

 

 

 

결론적으로 보면 mysql에서는 3306번 포트를 쓰는데

 

그 포트를 쓰는 프로세스가 겹치기 때문에 발생한 일 !

 

 

위의 창은

 

3306번 포트를 사용하는 곳의 PID가

 

8432와 6820인데 (이건 매번 바뀝니다)

 

 

  1. (윈도우버튼) + R을 누르고 "resmon.exe"을 검색하면 현재 사용하는 포트를 확인 할 수 있고
  2. Ctrl + Shift + Esc를 누르고 서비스 탭을 보게되면 PID로 해당하는 내용을 확인할 수 있다.

 

 

1번의 경우

 

 

 

 

8432번은 mysqld.exe로 mysql 실행하는 프로세스이니

 

이건 이상한게 아니고

 

그럼 6820번 ?

 

 

2번의 경우로 찾아보겠다.

 

 

wampstac...? 이게 무엇 ?

 

구글링 해 보았다.

 

 

 

 

 

글을 좀 찾아보니 mysql 설치할 때 

 

bitnami WAMP를 이용해서 설치를 도와주는 프로그램이라고 해야할까 ?

 

 

그래서 지난번에 당장 설치하고는 상관이 없었지만

 

재부팅할 때나 3306포트를 잠깐 껐을 때

 

저 wamp에서 3306포트를 가져갔기 때문에

 

mysql 에서 접속 할 때 되지 않았던 것...

 

 

 

아무튼

 

이유를 알았으니 6820번은 죽여야 한다.

 

여러가지 방법이 있겠지만

 

일단 cmd창을 켜놓았던 관계로

 

 

 

해당 명령어를 사용하여 프로세스를 종료한다.

 

그리고

 

다시 mysql 커넥션을 연결해 보면

 

 

 

 

아 이거때문에 며칠을 삽질했나 모르겠다;

 

집에 있는 PC에는 또 제대로 동작을 해서

 

크게 불편하지 않은 이상 집에 있는 PC로 작업했는데

 

이대로 그냥 둘 수는 없으니..

 

 

일단은 taskkill 명령어로 죽이긴 했지만

 

wamp 프로세스가 재부팅 시에 또 3306 포트를 가져갈 수 있으니 

 

삭제해야겠다.

 

 

아무튼 해결 !

 

 

 

[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