[Error] Host '211xxx.xxx.xxx' is not allowed to connect to this MySQL server

GyeongEun Kim·2022년 12월 28일

취준생으로서 RDS의 과금이 살짝 부담스러워서 HAY(진행중인 프로젝트)의 배포 서버에 DB를 직접 설치해서 사용하는 방식으로 바꾸려고 한다.
그러나 역시 문제가 안 생길리가 없지 허허허ㅓ

구글링을 해보니 권한 문제인 것 같았다.
로컬 DB나 RDS를 사용할때는 권한에 대한 문제를 고려해본 적이 없었는데 갑자기 권한, 유저 문제라고 해서 당황했다. 부끄럽지만 이런것이 있었는지 몰랐다ㅠ

1. mariaDB (MySQL) 을 root권한으로 실행

sudo mysql -u root -p

비밀번호를 입력하면 아래와 같이 접속이 된다.

2. 새로 사용자를 생성하기

CREATE USER 'username'@'%' IDENTIFIED BY 'password'
username에는 새로 생성할 사용자 이름을 적으면 된다.
'%'는 외부 접근을 허용해 준다는 의미이다.
password에는 mysql의 비밀번호를 적으면 된다.

3. 새로운 유저에게 권한 주기

GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' IDENTIFIED BY 'password';
모든 데이터베이스와 테이블에 접근 권한을 줄것이므로 *.*로 작성한다.

4. 완성

select Host,User from mysql.user;을 통해 유저가 잘 만들어졌는지 확인한다.

잘 만들어졌으면 exit을 통해 빠져나간 후, sudo mysql -u 'username' -p로 접속이 되면 성공~!

결론

mysql을 비롯한 데이터베이스들은 사용자를 새로 추가할 수 있다. 그리고 사용자별로 권한을 다르게 주어 외부에서의 접근을 통제할 수 있다.

profile
내가 보려고 쓰는 글

0개의 댓글