avatar

MySQL/MariaDB 원격 접속 허용하기 (Host 'IP' is not allowed to connect to this MySQL server)

2022. 08. 25.
2

MySQL(MariaDB)는 기본적으로 로컬에서만 접속할 수 있도록 설정되어 있습니다. 그래서 외부에서 DB에 접속하고자 하는 경우에는 반드시 접근 허용을 해주어야 합니다.

접근 권한 확인

해당 오류가 났다는 것은 접근 권한이 없다는 것을 의미하는 것이라, 사실 권한 확인은 생략하고 넘어가도 되지만 그래도 한번 확인해보도록 하겠습니다.

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

DB 접속 후 위 명령어를 입력하면 접근 권한이 어떻게 되어있는지 확인할 수 있습니다. localhost만 보인다면 접근권한이 로컬만 허용되어 있는 것입니다.

권한 부여


모든 IP 허용

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '패스워드';

IP 대역 허용

GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.0.%' IDENTIFIED BY '패스워드';

위와 같이 설정하는 경우에는 192.168.0 으로 시작하는 모든 IP가 허용됩니다.

특정 IP 허용

GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.0.19' IDENTIFIED BY '패스워드';

위와 같이 설정하는 경우에는 192.168.0.19 인 아이피만 허용됩니다.

허용 전으로 되돌리기

DELETE FROM mysql.user WHERE Host='%' AND User='유저명';
FLUSH PRIVILEGES;

원격 접속 하기

mysql -h '원격 IP주소' -u '허용된 사용자 이름(ex. root)' -p