1. 개요
Tripot 프로젝트를 진행하던 중 스프링부트 프로젝트와 DB가 연결되지 않는 문제가 발생했다. DB 상태를 확인하니 다음의 결과가 나왔다.
systemctl status mysql
mysql이 죽어버린 것이다. 이 글에서는 이의 원인을 찾고 해결하는 과정을 작성한다.
2. 원인
이와 관련하여 구글링해본 결과 처음에는 외부에서 접속을 많이 시도하여 발생한 문제인 케이스가 많았다. 이에 따라 에러 로그를 확인해봤다. mysql의 에러 로그는 다음의 경로에 위치한다.
/var/log/mysql/error.log
하지만 프로젝트에서 사용하는 PC는 어떤 로그도 찍히지 않았고, 다른 원인이라고 생각하여 찾아보던 중 mysql에 RECOVER_YOUR_DATA라는 DB가 있어 들어가 찍어보았다.
옛날에 컴퓨터 랜섬웨어 걸렸을 때와 유사한 문구였다. 즉 DB가 해킹당한 것이다. 이에 따라 사이드 프로젝트에서도 보안을 신경써야겠구나 하고 간단하게나마 보안 설정을 하고자 한다.
3. 해결
이 문제를 해결하기 위해 두 가지 설정을 바꾸기로 했다. 해당 설정은 모두 mysql 8.0 기준으로, 버전에 따라 설정방법이 다를 수 있다.
3-1. 비밀번호
use mysql;
alter user 'root'@'localhost' identified with mysql_native_password by 'new_password_you_want';
해당 쿼리를 사용하여 mysql 접근 비밀번호를 설정할 수 있다.
3-2. 포트 번호
/etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld]
#
# * Basic Settings
#
user = mysql
# pid-file = /var/run/mysqld/mysqld.pid
# socket = /var/run/mysqld/mysqld.sock
port = {port_num_you_want}
# datadir = /var/lib/mysql
해당 위치의 주석을 제거, 원하는 포트 번호로 수정하면 된다.
sudo systemctl restart mysql
수정 후 mysql을 재시작해주자
3-2-1 트러블 슈팅: 연결 불가
mysql에서 다음의 쿼리를 입력하면 포트 번호를 확인할 수 있다.
show global variables like "PORT";
그러나 스프링부트 애플리케이션을 실행했을 때 컴파일 에러가 터지면서 DB에서 다음의 메시지를 보낸 것이 확인되었다.
Host '{ec2 ip}' is not allowed to connect to this MySQL server
이는 mysql이 기본적으로 외부로부터의 연결을 허용하지 않기에 벌어진 일이다. 이를 해결하기 위해 모든 ip로부터의 연결을 허용해주었다.
CREATE USER 'root'@'%' identified by 'password_you_want';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
모든 IP로부터의 root 계정을 하나 만들고, 모든 권한을 주는 쿼리이다.
flush privileges;
마지막으로 이를 저장하여주면 된다.
이후 ec2의 인바운드 규칙도 이에 맞게 바꿔주고,
변경사항을 Parameter Store에 반영해주면 정상적으로 작동시킬 수 있다.
4. 여담
트러블슈팅 과정에서 아직 이해가 가지 않는 부분이 있다.
3306 포트일때도 사실상 외부로부터의 접근인데 이는 허용하고 포트 번호를 바꿨을 때 허용하지 않는 이유가 무엇인가?
이에 대해서도 조금 더 공부해봐야 겠다.
'Proj > Tripot' 카테고리의 다른 글
스프링 시큐리티에서 발생하는 예외 처리하기 (0) | 2024.11.10 |
---|---|
Trouble Shooting: @Value에 값이 불러와지지 않는 문제 (3) | 2024.11.04 |
Spring OAuth2를 사용하여 소셜 로그인 구현하기 (feat.추가 정보 입력) (2) | 2024.11.01 |
Trouble Shooting: 멀티 모듈 CI/CD, 환경 변수 설정 문제와 AWS Parameter Store을 이용한 해결 (1) | 2024.10.27 |
Trouble Shooting: 무한 리다이렉트 현상 (1) | 2024.10.15 |