일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- DAO
- Controller
- paginationInfo
- SpringFramework
- deferred
- REST
- 대댓글
- 우리마
- CRUD
- Spring
- 비동기
- modal #alert #sweetalert #sweetAlert #모달
- Boot
- 외부접속
- egov
- Today
- Total
우리마의 웹 개발
[DB] MySQL8.x 외부 접속 허용 하는 방법 본문
백앤드 개발을 하다보면 DB서버를 외부에서 접속해서 데이터 조작 및 조회를 해야 하는 경우가 있다. 물론 SSH로 서버에 원격으로 접속해서 mysql 프롬포트에서 sql문을 입력해도 되지만 자동완성도 안될뿐더러 상당히 불편한 점이 많다.
따라서 로컬에서 DBeaver, SQLyog등 DB툴을 이용해 접속 해서 SQL문을 조작 해야겠다는 생각이들 것이다.
이때 본인의 로컬IP가 DB서버로 접근하는 것을 허용하지 않았을때 본인 로컬IP의 접근을 허용 해주는 방법을 소개한다.
조건
1. 서버의 root권한 또는 sudo 명령어 권한이 있어야 된다.
2. DB의 root 계정 접속이 가능하거나 DB에 접속할 수 있는 사용자에게 mysql 스키마 조작 권한이 있어야된다.
본인 로컬IP 추가, 권한 부여
1. 서버DB에 서버의 root권한으로 접속한다
$ sudo mysql -uroot -p
2. mysql 스키마 접속 후 user테이블 확인
mysql> use mysql;
mysql> select host, user from user;
사람마다 다를 수도 있겠지만 보통 서버입장에서 로컬(서버 자신)에 대해서만 허용이 되어 있다.
3. 본인 IP 추가
본인의 로컬에서 원격으로 접속할 계정를 따로 생성해서 IP를 추가 해도되고 root 계정을 사용한다면 root계정에 IP를 추가 해도 된다. 필자는 계정을 새로 만들었다.
mysql> create user 'root또는 원하는계정'@'본인IP' identified by '비밀번호';
여기서 본인IP를 공유기또는 스위치 와 같이 할당된 IP를 적는 것이 아니라 본인 컴퓨터의 진짜IP 즉, 공인IP를 입력해야된다. 공인IP는 네이버에 검색하면 바로 나온다.
* 주의 CMD에서 ipconfig/all 해서 나오는 IP아닙니다!
4. IP 접근 권한 허용
mysql> grant all privileges on *.* to 'root또는 원하는계정'@'본인IP';
5. 변경 사항 적용
mysql> flush privileges;
이렇게 하고 나서 DB 툴에서 접속을 시도 하면
Unable to load authentication plugin 'caching_sha2_password'.
이런 오류가 뜰수도 있다.
계정을 root로 추가 헀을때는 잘 모르겠는데 필자는 원격으로 접속할 계정을 추가해서 그럴지도 모르곘다.
저 오류는 패스워드 설정을 평문으로 입력해서 그런것이다 즉, 암호화가 되지 않았다는 것이다.
따라서 DB서버 mysql 스키마에 접속해서 아래와 같이 입력해주면 된다.
mysql > ALTER USER 계정명@본인IP IDENTIFIED WITH mysql_native_password BY '비밀번호';
'WEB > DB' 카테고리의 다른 글
[SQL] MyBatis select한 결과물을 insert하기(select 행이 많을때도 가능) (0) | 2020.01.31 |
---|