본문 바로가기
Error

Cannot create PoolableConnectionFactory (Access denied for user 'id'@'host' (using password: YES))

by GoodDayDeveloper 2021. 10. 29.
반응형

개발서버를 셋팅하고 접속하려 하는데 아래와 같은 오류가 발생하였습니다.

 

Unable to open JDBC Connection for DDL execution

Cannot create PoolableConnectionFactory (Access denied for user 'id'@'host' (using password: YES))

 

이것은 데이터베이스를 연결할 수 없다는 오류중의 하나로써,

계정의 권한때문에 접속이 거부된 경우입니다.

이럴 경우 데이터베이스에서 권한을 설정해주어야 하죠!

 


 

데이터베이스를 접속합니다.

저 같은 경우는 mysql이기 때문에 mysql 로그인을 해줍니다.

그리고 show databases를 하여 데이터베이스 중, mysql를 접속합니다.

 

명령어

mysql -u root -p

password 입력

 

show databases;

use mysql;

 

 

 

데이터베이스 mysql에서 아이디와 호스트를 볼 수 있도록 user테이블을 검색해줍니다.

 

명령어

select user, host from user;

 

제 아이디는 'urbanregnrt' 인데 localhost로 되어 있어,

외부에서 접속을 할 수 없어서 접속이 거부가 된 경우입니다.

모든 외부 호스트를 받을 수 있는 '%'와 모든 권한을 받을 수 있도록 설정해보겠습니다.

 

 

 

호스트를 localhost에서 모든 호스트를 받을 수 있는 %로 변경해줍니다.

그리고 변경이 완료되면 flush를 해주면 최종 완료가 된겁니다.

 

명령어

update user set host = '변경할 호스트' where user ='아이디' and host='기존 호스트';

예) update user set host = '%' where user ='urbanregnrt' and host='localhost';

 

flush privileges;

 

 

 

 

다시 조회해보면 host가 localhost에서 %로 변경된 것을 알 수 있습니다.

 

 

 

이젠 변경된 호스트로 모든 권한을 받을 수 있도록 권한 설정을 해 줍니다.

 

명령어

grant all privileges on *.* to 'urbanregnrt'@'%' identified by 'password';

grant all privileges on *.* to '아이디'@'%' identified by '비밀번호';

 

flush privileges;

반응형

댓글