개인 프로젝트 진행 중, DB 서버를 다른 서버로 바꿔야 하는 일이 생겨, 새로 구축된 DB 서버와 연동을 하였지만 정상적으로 되지 않아 테스트를 진행하였다.
현재 DB tool(DataGrip)에서는 정상 접속 가능한 상태이나, Springboot 프로젝트에서는 접근이 되지 않는 것 같다.
DataGrip에서는 터널링을 통해 접근하고 있다.
우선,
DB 서버의 유저 접속 관련 정보 확인
mysql > use mysql;
mysql > show tables;
show tables 명령 실행 후, 출력되는 테이블 목록 중 user 테이블에 접근하여 호스트 정보를 확인해야한다.
※ 만약 host 정보가 localhost 로 되어있다면 이것은 해당 user가 localhost에서만 접속할 수 있다는 뜻이다.
'%'로 변경해주어야 한다.
mysql > grant all privileges on *.* to '{유저}'$'%' identified by '{유저의 패스워드}';
※ *.* 는 모든 db 접근, '%' 모든 ip 에 대해 허용
위 명령을 적용
mysql > flush privileges;
확인
mysql > SELECT host, user FROM user;
MySQL 접속정보 확인
mysql 외부 접속시도시 실패할 경우, mysqld.cnf 파일 확인
$ vi /etc/mysql/mysql.cnf.d/mysqld.cnf
bind-address, mysqlx-bind-address 정보가 127.0.0.1 로 되어있다면 0.0.0.0으로 변경하여 외부에서 접속할 수 있도록 설정한다.
설정 저장후, mysql을 재시작한다.
$ netstat -tnlp
**기존 127.0.0.1:3306 -> 0.0.0.0:{포트}
방화벽 확인
참고
방화벽 확인
$ sudo ufw status verbose
포트 허용
$ sudo ufw allow {포트}/tcp
확인
$ sudo ufw status verbose
클라우드 INBOUND 설정
* 오라클 클라우드 사용
컴퓨트 > 인스턴스 > 인스턴스 세부정보
다음과 같이 수신 규칙을 추가해준다.
참고
[운영체제] 선점 스케줄링 / 비선점 스케줄링 (0) | 2023.04.04 |
---|---|
[git] intellij 프로젝트 git 올리기 (0) | 2023.02.06 |
[ubuntu] 원격 ssh 접속시 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! (0) | 2022.12.26 |
[ubuntu] MySQL 외부 접속 허용 (0) | 2022.12.23 |
[Ubuntu] Redis 설치 (0) | 2022.12.21 |