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.%'; |
> 설정확인
- 접속을 허용하려는 IP에 대한 권한을 확인합니다.
mysql> select host, user from user; |
> 설정적용
- 접속을 허용하려는 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 접속
# mysql -u root -p |
◎ MySQL IPTABLES 설정
> mysql 서버 iptables 설정
- mysql 서버에 iptables에서 mysql포트가 차단되어 있는지 확인합니다.
- my.cnf 파일에 아래와 같은 설정이 있을 시 주석처리 또는 삭제합니다.
$ sudo vi /etc/my.cnf |
> mysql 재시작
# /etc/init.d/mysqld restart |
> MySQL 접속
# mysql -u root -p |