상황
DB와 was를 연결하는 과정에서 에러가 발생했다. 서버가 DB에 패킷을 보냈으나, JDBC Driver가 DB로부터 어떠한 패킷도 받지 못했다는 에러메시지가 출력되었다.
원인
Mysql 설정 파일에서 bind-address를 제대로 설정해주지 않아 생긴 문제였다. 설정 파일은 /etc/mysql/mysql.conf.d 경로 내에 mysqld.cnf라는 이름으로 존재한다. 아래 명령어를 입력하면 리눅스 내 my.cnf 설정파일이 어디에 존재하는지 알 수 있다.
mysqld --verbose --help | grep -A 1 'Default options'
해결 방법
설정파일에 들어가면 bind-address 값이 127.0.0.1로 되어 있다. 이것을 0.0.0.0 으로 변경한 뒤 mysql을 재시작하면 된다.
sudo service mysql restart # mysql 재시작
부연 설명을 하자면, 127.0.0.1은 localhost를 의미한다. 즉, bind-address 디폴트 값이 127.0.0.1이기에 localhost에서 보내는 요청만 받겠다는 뜻이다. 이것을 0.0.0.0으로 바꿔주어야 비로소 외부에서 보내는 요청을 받을 수 있게 된다.
이 외에도 application.yml 파일에 DB url을 잘못 입력한 경우 위 에러가 발생한다고 한다.
'우아한테크코스' 카테고리의 다른 글
Mysql 쿼리최적화 (2) | 2022.09.25 |
---|---|
더미데이터 100만개를 넣기위한 여정 (0) | 2022.09.25 |
Lv2 레벨로그 (0) | 2022.08.31 |
Logging 전략 수립(with Logback) (0) | 2022.08.10 |
@Transactional과 @Transactional(readOnly = true) 차이 (0) | 2022.05.13 |