DevOps
[바미] 도커 내부의 PM2로 실행한 프로젝트가 DB connection이 실패할 때
Bami
2025. 1. 31. 02:51
728x90
반응형
결론
vim /etc/hosts
에서
127.0.0.1 localhost
# ::1 localhost ip6-localhost ip6-loopback
부분을 주석하니 해결 되었습니다.
그 다음 부분은 제가 DB 연결을 위해 시도해 본 부분들입니다.
그 외 시도한 부분들
.env 값을 제대로 가져오는 지 확인
require('dotenv').config();
logger.info('🔹 PM2 실행 환경에서 RDB_HOST:', process.env.RDB_HOST)
이 부분에서 제대로 가져오지 않아
pm2 <프로젝트 시작 명령어>--name backend --interpreter nodemon --update-env --env production
이런 식으로 pm2가 실행 되었을 때 환경변수가 강제로 적용되도록 실행 옵션에 추가시켰습니다.
pm2 env <PM2 NAME> 또는 pm2 env <pm2 ID>
로 확인.
MySQL이 네트워크 포트를 사용하도록 설정 변경
vim /etc/mysql/mysql.conf.d/mysqld.cnf
여기에서
bind-address = 0.0.0.0
로 변경
service mysql restart
mysql 재시작
ecosystem.config.js 생성 후 pm2 재적용
프로젝트에 맞는 config 설정 후
pm2 start ecosystem.config.js
재시작
직접 쉘에 입력하여 연결
node -e "
require('mysql2').createConnection({
host: <host>,
user: <user>,
password: <password>,
database: <database>,
port: <port>
}).connect(err => {
if (err) console.error('❌ MySQL 연결 실패:', err.message);
else console.log('✅ MySQL 연결 성공!');
});
"
728x90
반응형