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 접속
$ sudo 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 재시작
$ sudo /etc/init.d/mysqld restart
> MySQL 접속
$ sudo mysql -u root -p
반응형
