MySQL 설치 후 외부에서 접속하기 위해 접근 허용 IP를 등록하는 방법입니다.

◎ MySQL Database 설정
 > 권한확인
  - 처음 설치 후 로컬에서 접속하여 권한을 확인해보면 localhost 또는 127.0.0.1만 등록되어 있습니다.

 mysql> use mysql;
 mysql> select host, user from user;
 |    host    | user |
 | localhost | root |
 mysql> show grants for current_user;
 GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost'


 > 권한설정
  - 아래는 모든 db에 all privileges(모든 권한)을 부여하는 쿼리입니다.
  - 특정 IP 접근 허용

 mysql> grant all privileges on *.* to ‘root’@‘192.168.1.2’ identified by ‘패스워드’;

  - 특정 IP 대역 접근 허용

 mysql> grant all privileges on *.* to ‘root’@‘192.168.1.%’ identified by ‘패스워드’;

  - 모든 IP 접근 허용

 mysql> grant all privileges on *.* to ‘root’@‘%’ identified by ‘패스워드’;


 > 권한변경
  - 권한을 부여한 IP 정보를 수정합니다.

 mysql> update user set host = '192.168.1.2' where user ='root' and host='192.168.1.%';
 mysql> flush privileges;


 > 설정확인
  - 접속을 허용하려는 IP에 대한 권한을 확인합니다.

 mysql> select host, user from user;
 |      host      | user |
 | 192.168.1.% | root |
 |   localhost   | root |
 mysql> show grants for current_user;
 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.%''


 > 설정적용

  - 접속을 허용하려는 IP에 대한 권한 설정을 적용합니다.

 mysql> flush privileges;


 > 권한 제거
  - 특정 IP 접근 허용 제거

 mysql> delete from mysql.user where host=’192.168.1.2′ AND User=’root’;

  - 특정 IP 대역 접근 허용 제거

mysql> delete from mysql.user where host=’192.168.1.%′ AND User=’root’;

  - 모든 IP 접근 허용 제거

mysql> delete from mysql.user where host=’%’ AND User=’root’;


 > 설정 적용
  - 접속을 허용하려는 IP에 대한 권한을 확인 후 설정을 적용합니다.

 mysql> select host, user from user;
 mysql> flush privileges;


 > MySQL 접속

# mysql -u root -p


◎ MySQL IPTABLES 설정
 > mysql 서버  iptables 설정
  - mysql 서버에  iptables에서 mysql포트가 차단되어 있는지 확인합니다.
  - my.cnf 파일에 아래와 같은 설정이 있을 시 주석처리 또는 삭제합니다.

 $ sudo vi /etc/my.cnf
 # bind-address = 127.0.0.1 // 주석처리 또는 삭제


 > mysql 재시작

# /etc/init.d/mysqld restart


 > MySQL 접속

 # mysql -u root -p

 

 

+ Recent posts