크고 작은 문제들/오류

[로컬 개발 환경] 윈도우 MySQL ↔ ubuntu node.js(mysql2) 연결 오류 해결

노새두마리 2023. 10. 25. 23:07

 

-111: ECONNREFUSED
윈도우 환경에서 실행중인 MySQL 서버와 동일한 디바이스의 ubuntu 환경에서 실행중인 node.js를 연결합니다. 두 환경 모두 로컬 환경입니다.

 

준비물

네트워크 연결


요약

두 환경 모두 로컬이지만 서로 분리되어 있으므로 로컬호스트 주소가 아닌 컴퓨터의 ip 주소를 통해 접근해야 했습니다. 외부 데이터베이스 서버에 접근하는 것처럼요.


해결

1. 서버 호스트 변경

요청 대상 호스트 주소를 MySQL이 실행중인 PC의 ip 주소로 변경합니다.

const pool = mysql.createPool(
  {
    host: 'localhost', // 이 부분을 '172.xxx.xxx.xxx'로 변경하였습니다.
    user: 'user',
    database: 'db',
    password: 'password',
    waitForConnections: true
  }
);

 


2. 사용자 권한 설정

 

MySQL 서버에서는 요청 호스트가 ubuntu hostname으로 표시되므로 더이상 클라이언트 호스트로써 localhost, 127.0.0.1은 사용할 수 없습니다.

MySQL Benchmark 내의 유저 및 권한 조작 메뉴 또는 CLI를 활용하여 호스트 부분을 변경합니다.  ubuntu hostname 또는 와일드카드('%')를 사용합니다.

 

[기록] 윈도우 MySQL ↔ ubuntu node.js(mysql2) 연결 시도