Error - "Host not allowed to connect to server" / MySQL 데이터베이스 연결 방법
본 에러는 MySQL 서버로 클라이언트 프로그램(SQLGate for MySQL) 이 접근 할 권한이 없기 때문에 발생합니다.
MySQL 서버 관리자에게 외부에서 접근 할 수 있도록 요청하시기 바랍니다.
만약 Grant 권한을 줄 수 있는 권한이 있다면 MySQL 을 텔넷이나 기타 프로그램으로 접속하여 해당 유저가 외부에서 접속이 가능하도록 세팅합니다.
MySQL Server 가 Windows 에 설치되어 있는 경우
Start > Programs > Command Prompt
> CD\
> CD mysql\bin
MySQL 을 최초로 설치할 때에는 Password 가 없기 때문에 패스워드를 지정하시기 바랍니다.
MySQL 서버에 Root 권한으로 접속할 경우
> mysql -u root -p password
올바르게 접속 될 경우 아래의 메세지가 나옵니다.
MySQL Database 에 접속하여 User 테이블의 상태를 확인합니다.
User 테이블은 mysql database 내에 존재합니다.
mysql>Use mysql
Database changed
mysql> SELECT Host, User, Select_priv, Insert_priv,Update_priv, Delete_priv FROM user;
위의 그림과 같이 각 유저의 권한 리스트를 볼 수 있습니다.
또한 MySQL Administrator 또는 Root 권한을 가진 User 만이 User 테이블을 추가/수정/삭제할 수 있습니다.
외부에 접속하려고 하는 유저에 대해서 아래의 명령어를 수행합니다.
위의 User 중에 test 라는 유저를 외부에서 접속 가능하도록 명령하는 예제입니다.
Host : localhost
User : test
mysql> GRANT ALL PRIVILEGES ON *.* to test@"%" IDENTIFIED BY 'test'
WITH GRANT OPTION;
Query OK, 0 rows affected (0.01 sec)
위에 명령이 올바르게 수행되었다면 꼭 아래의 명령어를 수행하시기 바랍니다.
Mysql>flush privileges;
다시 User 테이블을 확인합니다.
mysql> SELECT Host, User, Select_priv, Insert_priv,Update_priv, Delete_priv FROM user;
제일 하단에 기존의 test 계정 외에 계정이 또 하나 만들어집니다.
Host : %
User : test
test User 로 외부에서 접속이 가능하게 됩니다.
단지 emp 라는 Database 에만 test 계정이 접속할 수 있게 하는 예제입니다.
- localhost 에서만 접속하기 위한 예제입니다.
mysql>GRANT SELECT, INSERT, UPDATE, DELETE ON emp.* TO
test@localhost IDENTIFIED BY "TestPassword";
mysql>flush privileges; - www.mysite.com 에서만 접속하기 위한 예제입니다.
mysql>GRANT SELECT, INSERT, UPDATE, DELETE ON emp.* TO
test@www.mysite.com IDENTIFIED BY "TestPassword";
mysql>flush privileges; - 외부 어떤곳에서든 접속하기 위한 예제입니다.
GRANT SELECT, INSERT, UPDATE, DELETE ON emp.* TO
test@”%” IDENTIFIED BY "TestPassword";
mysql>flush privileges;
'개발자 > Server' 카테고리의 다른 글
PHP CONFIGURE (0) | 2014.05.23 |
---|---|
MYSQL CONFIGURE (0) | 2014.05.23 |
Sendmail 계정 추가방법 (0) | 2014.05.23 |
YUM을 이용한 APM설치 (0) | 2014.05.23 |
iptables 사용~ (0) | 2014.05.23 |