에러 코드
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 |