1. 시작하기
MySQL 계열을 설치하면 접속은 localhost에서만 가능하게 기본세팅이 되어있다. 외부에서 접속을 시도하면 아래와 같은 오류가 난다.
Host '아이피명' is not allowd to connect to this MySQL server
다른 서버 또는 Mysql DBMS Tool을 이용해서 원격에서 DB에 접속하려면 리모트컨트롤을 허용해주는 작업이 필요하다!
1. mysql root계정으로 mysql db에 접속한다.
mysql 접속 후 계정관리를 위해서 mysql 테이블을 사용한다. use mysql; 입력.
2. user table과 databasse talbe에 접속할 host의 ip주소 및 계정명, 비밀번호, 사용 database 등을 설정한다.
INSERT INTO user (HOST,USER,PASSWD) VALUES('OOO.OOO.OOO.OOO','USER',PASSWD('비번값'));INSERT INTO db VALUES('OOO.OOO.OOO.OOO','USER','DB','Y','Y','Y','Y','Y,'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
ooo부분에 IP주소를 이하 사용자계정명, 비밀번호를 입력한다. 2번째 쿼리문은 권한을 모두 y로 주는것이다. 속성이 궁금하다면 desc 해볼것.
3. 내용을 적용시킨다. ( 아이피 입력란에 '%'를 입력시 모든 ip에서 접속이 가능해진다. 아무에게나 문을 열어줌....
flush privileges;
exit
2. IP허용 종류
모든 IP 주소 허용
INSERT INTO mysql.user (host,user,password) VALUES ('%','root',password('비밀번호')); GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'; FLUSH PRIVILEGES;
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;
3. 원상 복구
DELETE FROM mysql.user WHERE Host='%' AND User='root'; FLUSH PRIVILEGES;