개발서버를 셋팅하고 접속하려 하는데 아래와 같은 오류가 발생하였습니다.
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;
댓글