Just do IT
article thumbnail
Published 2021. 8. 11. 11:16
MySQL 에러 (DB 접근) Programing/Error

에러 코드

Host 'DESKTOP-UN7LBMP' is not allowed to connect to this MySQL server

 

원인 

DB를 외부에서 접속하려고 할 때 생기는 에러입니다.
보안상 root 계정에는 아무나 접근할 수 없기 때문에

외부에서 root로 DB를 접근할 수 있게 해주어야 합니다.

 

해결 방법

- MySQL Command Line Client로도 가능

외부에서도 root로 DB에 접근할 수 있게 IP를 허용해주면 됩니다.

 

※ DB 접속 후 현재 설정 확인

현재 DB의 계정들과 그 계정들에게 허용된 IP를 확인할 수 있습니다.

select Host, User, plugin, authentication_string, from mysql.user;

 

※ 기본 명령어

grant all privileges on *.* to '아이디'@'IP' identified by '패스워드';

grant : 부여하다

all privileges : 모든 권한을 

해당 DB의 계정에 접속할 IP로 권한을 부여한다는 명령어입니다.

아이디, IP, 패스워드 부분에 해당 DB의 아이디, 패스워드와 접근을 허용하고 싶은 IP를

입력해 주시면 됩니다.

 

< 명령어 예시 >

※ 모든 IP 허용

grant all privileges on *.* to 'root'@'%' identified by '패스워드';

 

※ IP 대역대 허용

grant all privileges on *.* to 'root'@'127.10.0.%' identified by '패스워드';

 

※ 특정 IP 허용

grant all privileges on *.* to 'root'@'127.10.0.254' identified by '패스워드'

 

※ IP 허용 후 원래 상태로 되돌리기

delete from mysql.user where Host='IP' and User='아이디';

flush privileges; (변경 사항 적용)

 

위와 같이 설정을 했음해도 접근 권한 거부가 뜬다면 그 때는 방화벽(firewall)을 확인해보아야 합니다.

3306 port를 허용해주면 됩니다.

※ 방화벽 포트 확인

firewall-cmd --list-all=zones

 

※ 3306 포트 허용하기

firewall-cmd --permanent --zone=public --add-port=3306/tcp

'Programing > Error' 카테고리의 다른 글

HTTP 상태 코드 (1xx, 2xx, 3xx)  (0) 2022.12.20
418 에러 - I'm a teapot  (0) 2022.12.07
JavaScript 에러(not defined)  (0) 2021.09.13
MySQL 에러 (tx_isolation)  (0) 2021.08.10
MySQL - Nodejs 연동에러  (0) 2021.08.10
profile

Just do IT

@AmyG

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!