Web & App/Backend Study

Node.js에서 MySQL 연결하기

jimmmy_jin 2025. 2. 1. 19:15

🚀 Node.js에서 MySQL 연결하기 + DBeaver 사용 이유 총정리

 

Node.js 프로젝트에서 MySQL을 연결할 때, 생각보다 많은 문제들이 발생할 수 있다. 특히 MySQL 9.x 버전을 사용하면 mysql2 라이브러리에서 인증 방식 문제, SSL 인증 오류 등이 발생할 수 있다. 이번 글에서는 Node.js에서 MySQL을 올바르게 연결하는 방법과 DBeaver를 활용한 MySQL 관리 방법을 정리해본다.

✅ 1. Node.js에서 MySQL 연결하는 방법

 

Node.js에서 MySQL을 사용하려면 mysql2 패키지를 설치하고, 데이터베이스 연결을 설정해야 한다.

 

📌 1) mysql2 설치

 

먼저 프로젝트 폴더에서 mysql2 패키지를 설치한다.

npm install mysql2

설치가 완료되면 database.js 파일을 생성하고, MySQL 연결을 설정한다.

 

📌 2) MySQL 연결 코드 작성 (database.js)

const mysql = require('mysql2');

const pool = mysql.createPool({
  host: 'localhost',
  user: 'root',
  password: '비밀번호',
  database: 'node-complete',
  waitForConnections: true,
  connectionLimit: 10,
  queueLimit: 0,
  ssl: {
    rejectUnauthorized: false  // SSL 인증 오류 방지
  }
});

module.exports = pool.promise();

🔥 핵심 포인트:

pool을 사용해서 MySQL 연결을 효율적으로 관리

MySQL 9.x에서는 SSL 인증을 요구하기 때문에 ssl: { rejectUnauthorized: false } 옵션 추가

 

📌 3) Node.js에서 MySQL 쿼리 실행 (app.js)

const pool = require('./database');

async function fetchProducts() {
  const [rows] = await pool.query('SELECT * FROM products');
  console.log(rows);
}

fetchProducts();

이제 nodemon app.js로 실행하면 MySQL 데이터가 정상적으로 출력된다.

✅ 2. MySQL 9.x에서 발생하는 mysql2 인증 오류 해결

 

MySQL 9.x에서는 기본적으로 caching_sha2_password 인증 방식을 사용한다. 하지만 mysql2 라이브러리는 구버전일 경우 이를 지원하지 않는다.

 

🔹 ER_NOT_SUPPORTED_AUTH_MODE 오류 해결 방법

 

만약 다음과 같은 오류가 발생한다면:

Error: Client does not support authentication protocol requested by server

MySQL에서 인증 방식을 변경해야 한다.

ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '비밀번호';
FLUSH PRIVILEGES;

이후 MySQL을 다시 시작하면 문제가 해결된다.

sudo service mysql restart

✅ 3. MySQL Workbench 대신 DBeaver를 써야 하는 이유

 

많은 사람들이 MySQL GUI 도구로 MySQL Workbench를 사용하지만, DBeaver가 더 나은 선택이 될 수 있다.

 

🔹 DBeaver란?

 

DBeaver는 무료 데이터베이스 관리 툴로, 다양한 DBMS(MySQL, PostgreSQL, MongoDB 등)를 지원한다.

 

🔹 MySQL Workbench vs DBeaver

기능                                                   MySQL Workbench                              DBeaver

지원하는 DB 종류 MySQL 전용 MySQL, PostgreSQL, SQLite, MongoDB 등 다수 지원
UI 사용성 무겁고 느림 가볍고 빠름
쿼리 실행 속도 보통 빠름
JSON, CSV 데이터 편집 지원 안 함 지원
다크 모드 지원 안 함 (버그 있음) 완벽 지원

🔹 DBeaver의 주요 기능

MySQL Workbench보다 가볍고 빠름

쿼리 실행 속도가 빠르고, 다양한 데이터베이스 지원

JSON, CSV 등 데이터 파일을 쉽게 조회하고 수정 가능

MySQL Workbench보다 UI가 직관적이며, 다크 모드 완벽 지원

ER 다이어그램 기능 제공 (무료)

 

📌 결론:

💡 MySQL Workbench보다 DBeaver를 사용하면 더 직관적이고 강력한 기능을 활용할 수 있다!

✅ 4. DBeaver로 MySQL 연결하는 방법

 

DBeaver를 설치한 후, 다음 단계를 따라 MySQL을 연결하면 된다.

 

📌 1) DBeaver 설치

 

DBeaver 공식 사이트에서 다운로드하여 설치한다.

 

📌 2) MySQL 연결 설정

1. DBeaver 실행 → “New Database Connection” 클릭

2. MySQL 선택 → “Next” 클릭

3. 다음 정보 입력

Host: localhost

Port: 3306

Database: node-complete

Username: root

Password: 비밀번호

4. “Test Connection” 클릭 → 연결 확인 후 “Finish”

 

이제 DBeaver에서 MySQL을 자유롭게 관리할 수 있다.

✅ 5. 결론

 

🚀 Node.js에서 MySQL을 연결하는 올바른 방법을 정리하면 다음과 같다.

1️⃣ mysql2를 설치하고, pool을 사용해 MySQL 연결 관리

2️⃣ MySQL 9.x의 기본 인증 방식(caching_sha2_password)을 지원하도록 변경

3️⃣ SSL 인증 문제 발생 시 rejectUnauthorized: false 설정

4️⃣ MySQL Workbench보다 DBeaver를 사용하면 더 빠르고 강력한 기능 활용 가능

5️⃣ DBeaver에서 MySQL을 쉽게 연결하고 관리 가능

 

 

💡 DBeaver를 활용하면 MySQL을 훨씬 직관적으로 관리할 수 있다.

앞으로도 MySQL을 사용할 때 Workbench보다 DBeaver를 사용해야 할 듯 하다.