일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- between 날짜
- hikari
- ubuntu
- Spring
- git
- MySQL
- oracle between
- oracle
- springboot
- hikaricp
- STS
- log4j2
- 라즈베리파이
- bitbucket
- catalina log
- Spring Security
- log4j profile
- template
- Java
- Spring Boot
- between date
- datasource
- ORACLE CLOUD
- github
- intellij
- Linux
- 배열스트링
- mybatis
- python 개발환경
- Gradle
- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- between 날짜
- hikari
- ubuntu
- Spring
- git
- MySQL
- oracle between
- oracle
- springboot
- hikaricp
- STS
- log4j2
- 라즈베리파이
- bitbucket
- catalina log
- Spring Security
- log4j profile
- template
- Java
- Spring Boot
- between date
- datasource
- ORACLE CLOUD
- github
- intellij
- Linux
- 배열스트링
- mybatis
- python 개발환경
- Gradle
- Today
- Total
파워노트
mysql 외부접속 허용. 본문
* mysql 처음 설치이후에 Workbench 등으로 접속을 시도시 보안적인 이슈로 workbench에서는 접속이 안되고 해당 mysql 서버에서만 접속이 되도록 처리 된다.
* 이를 허용하여 workbench 등에서 접속이 이루어 지도록 설정이 필요하다.
* 물론 운영시점에서는 외부 접속 허용에 대한 고려가 이루어 져야 할것이다.
* 이래 서버는 라즈베리파이4 셋팅이 된 서버이다.
# mysql 접속 허용 포트 확인
- mysql 설치 및 실행 서버에 접속하여 netstat 확인 하면 . 3306 포트에 대해서 내부 아이피로만 설정이 되어 있는것을 확인 할 수 있다. ( 127.0.0.1:3306 )
ubuntu@ubuntu:/etc/mysql$ netstat -anpt
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN -
tcp 0 360 192.168.25.240:22 192.168.25.1:50814 ESTABLISHED -
tcp6 0 0 :::22 :::* LISTEN -
# 리눅스 포트 외부접속 허용 : mysql 외부접속 환경설정 변경.
- 환경설정파일인 mysql.conf 파일을 열어
#bind-address = 127.0.0.1 부분을 주석 처리 한다.
- 주석처리이후에는 mysql 서비스를 재실행 해준다.
- 설정변경이후에 다시 한번 netstat 로 포트상태를 확인해보자.
- :::3306 로 변경되어 전체 ip 허용이 됨을 확인합니다.
ubuntu@ubuntu:/etc/mysql$ netstat -anpt
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
tcp 0 360 192.168.25.240:22 192.168.25.1:50814 ESTABLISHED -
tcp6 0 0 :::22 :::* LISTEN -
tcp6 0 0 :::3306 :::* LISTEN -
# mysql 계정 접속 허용. : 계정별 접속 허용 처리.
- mysql db에 접속하여 계정정보를 확인 해보자.
- root 계정이 localhost로만 허용되어 있는것이 확인 된다. 이후에 grant를 등록 하고 다시 해당 부분을 확인 해보자.
ubuntu@ubuntu:/etc/mysql$ mysql -u root -p mysql
mysql> select host, user, authentication_string from user;
+-----------+------------------+-------------------------------------------+
| host | user | authentication_string |
+-----------+------------------+-------------------------------------------+
| localhost | root | *607BE9D00D3F1A14E90D907B6184697F31232117 |
| localhost | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| localhost | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| localhost | debian-sys-maint | *10BF242108C7B2337A5B94763EF56C87ED9B8987 |
+-----------+------------------+-------------------------------------------+
4 rows in set (0.00 sec)
- grant 등록후 다시 user 정보를 확인해보자.
- 여기서는 root 계정에 대해 % 모든 외부 허용으로 설정을 해보았습니다.
( root 계정 전체 허용은 테스트 이므로 별도 계정을 생성하여 진행하는것이 바람직해 보입니다. )
mysql> grant all privileges on *.* to root@'%' identified by '패스워드' with grant option;
mysql> flush privileges;
mysql> select host, user, authentication_string from user;
+-----------+------------------+-------------------------------------------+
| host | user | authentication_string |
+-----------+------------------+-------------------------------------------+
| localhost | root | *607BE9D00D3F1A14E90D907B6184697F31232117 |
| localhost | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| localhost | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| localhost | debian-sys-maint | *10BF242108C7B2337A5B94763EF56C87ED9B8987 |
| % | root | *607BE9D00D3F1A14E90D907B6184697F31232117 |
+-----------+------------------+-------------------------------------------+
5 rows in set (0.00 sec)
* 정리를 해보면 .
- mysql.cnf의 bind-address를 주석으로 막고 ubuntu 외부접속 포트 허용을 해주고,
- mysql의 grant user에 대해 접속 권한 허용을 설정해 주면 기본적으로 외부에서 mysql client를 통해 접속이 가능해 집니다.
* 추가적으로 grant 기본사용을 정리 하자면 .
# 기본적인 사용자 권한주기
grant all privileges on [디비이름.*] to [아이디@접속허용Host] identified by ['접속비밀번호'] with grant option;
flush privileges;
# root 사용자 모든권한주기
grant all privileges on *.* to root@'%' identified by '비밀번호' with grant option;
flush privileges;
* 이제 기본적인 workbench와 같은 툴에서 접속 허용이 되므로 디테일한 설정은 workbench에서 해도 된다.
'mysql' 카테고리의 다른 글
[Workbench] windows 10 , MySql Workbench 8.0 설치 하기 (1) | 2020.07.12 |
---|---|
Mysql Index 확인 (0) | 2020.04.24 |