출처)
http://jmnote.com/wiki/MySQL%EC%97%90_%EC%9B%90%EA%B2%A9_%EC%A0%91%EC%86%8D_%ED%97%88%EC%9A%A9
개요
- MySQL을 설치하면 기본적으로 로컬(localhost)에서만 접속이 가능하고 외부에서는 접속이 불가능하게 되어 있다.
- 외부에서 접속해보면 다음과 같은 오류 메시지가 나온다.[1]
Host '135.79.246.80' is not allowed to connect to this MySQL server
- Toad for MySQL과 같은 DB 관리 도구를 사용하여 DB에 원격으로 접속하려면 허용해주는 로컬 작업이 필요하다.
- 여기서는 root를 원격에서 접속할 수 있도록 설정한다. 이것을 응용하면 다른 계정에도 적용할 수 있다.
확인
- 아래 쿼리를 날려보면 localhost가 나온다.
- 즉 root 계정으로는 로컬에서만 접속가능하다.
- (같은 방법으로 root 대신 다른 사용자명도 조회할 수 있다.)
SELECT Host FROM mysql.user WHERE user='root';
변경
- 모든 IP 허용[2]
INSERT INTO mysql.user (host,user,password) VALUES ('%','root',password('패스워드')); GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'; FLUSH PRIVILEGES;
- IP 대역 허용
- 다음과 같이 설정하면 111.222로 시작하는 모든 IP가 허용된다.
INSERT INTO mysql.user (host,user,password) VALUES ('111.222.%','root',password('패스워드')); GRANT ALL PRIVILEGES ON *.* TO 'root'@'111.222.%'; FLUSH PRIVILEGES;
- 특정 IP 1개 허용
INSERT INTO mysql.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 mysql.user WHERE Host='%' AND User='root'; FLUSH PRIVILEGES;
'DataBase' 카테고리의 다른 글
[MS-SQL] MSSQL 프로세스 (1) | 2014.10.01 |
---|---|
[Altibase] Altibase GUI 툴 (0) | 2014.01.14 |
[Sqlite] 명령어 Shell 설정값 저장하기 (0) | 2012.09.26 |
DataBase 추천 책 목록 (0) | 2012.03.20 |
[ERD] 무료 ERD 프로그램 DBDesigner (0) | 2012.03.16 |