🚀 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를 사용해야 할 듯 하다.
'Web & App > Backend Study' 카테고리의 다른 글
| 현대 웹 개발에서 백엔드 작업 순서 및 기술 스택 🚀 (1) | 2025.02.03 |
|---|---|
| Node.js와 Sequelize: 효율적인 데이터베이스 ORM 활용 (0) | 2025.02.02 |
| SQL vs NoSQL (0) | 2025.01.31 |
| MVC(Model-View-Controller) 패턴이란? (0) | 2025.01.31 |
| Express.js란 무엇인가? (0) | 2025.01.31 |