웹서버와 디비서버를 분리할경우 외부에서 mysql에 접속하려면 외부접속 권한이 필요하다
일반적으로 외부접속 권한이 없을시 아래와 같은 메시지가 나옴
ERROR 1130 (HY000): Host ‘192.168.0.10’ is not allowed to connect to this mysql server
mysql 서버에서 콘솔로 접속해서 권한을 확인해보면 localhost 나 127.0.0.1 로 등록 되어있는걸 확인할수 있다
mysql> use mysql
mysql> select host, user, password from user;
권한설정
모든 ip허용
% 는 모든ip를 허용하지만 localhost는 포함되지 않음
mysql> GRANT ALL privileges ON *.* TO 아이디@’%’ IDENTIFIED BY ‘패스워드’;
특정ip허용
mysql> GRANT ALL privileges ON *.* TO 아이디@’111.111.111.111′ IDENTIFIED BY ‘패스워드’;
설정적용
mysql> FLUSH privileges;
외부접속 허용제거
% 모든아이피 허용제거
mysql> DELETE FROM mysql.user WHERE Host=’%’ AND User=’아이디’;
특정ip허용 제거
mysql> DELETE FROM mysql.user WHERE Host=’111.111.111.111′ AND User=’아이디’;
설정적용
mysql> FLUSH privileges;
외부접속 확인방법
mysql -h 111.111.111.111 -u servblog -p
설정이 바르게 적용됬으면 정상적으로 접속되는걸 확인할수 있다
mysql 서버에 iptables 에서 mysql포트가 차단되어 있는지 확인한다
my.cnf 파일에 아래와 같은 설정이 있을시 삭제한다
bind-address = 127.0.0.1