데이터베이스/마이 SQL(MySQL)

MySQL 접속 권한 추가

후바스탱크 2015. 11. 18. 11:07

MySQL을 설치하면 기본적으로 로컬(localhost)에서만 접속이 가능하고 외부에서는 접속이 불가능하게 되어 있다.

외부에서 접속해보면 다음과 같은 오류 메시지가 나온다.


Host '135.79.246.80' is not allowed to connect to this MySQL server


Toad for MySQL과 같은 DB 관리 도구를 사용하여 DB에 원격으로 접속하려면 허용해주는 로컬 작업이 필요하다.

여기서는 root를 원격에서 접속할 수 있도록 설정한다. 이것을 응용하면 다른 계정에도 적용할 수 있다.


아래 쿼리를 날려보면 localhost가 나온다.

즉 root 계정으로는 로컬에서만 접속가능하다.

(같은 방법으로 root 대신 다른 사용자명도 조회할 수 있다.)

use mysql;

SELECT Host FROM user WHERE USER='root';



- 모든 IP 허용

INSERT INTO user (host,USER,password) VALUES ('%','root',password('패스워드'));

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';

FLUSH PRIVILEGES;



- IP 대역 허용

다음과 같이 설정하면 111.222로 시작하는 모든 IP가 허용된다.

INSERT INTO user (host,USER,password) VALUES ('111.222.%','root',password('패스워드'));

GRANT ALL PRIVILEGES ON *.* TO 'root'@'111.222.%';

FLUSH PRIVILEGES;



- 특정 IP 1개 허용

INSERT INTO user (host,USER,password) VALUES ('111.222.33.44','root',password('패스워드'));

GRANT ALL PRIVILEGES ON *.* TO 'root'@'111.222.33.44';

FLUSH PRIVILEGES;



- 원복

모든 IP를 허용한 경우 다음과 같이 원래 상태로 복구할 수 있다.

DELETE FROM user WHERE Host='%' AND USER='root';

FLUSH PRIVILEGES;