Programing/Error

MySQL 에러 (DB 접근)

AmyG 2021. 8. 11. 11:16

에러 코드

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