개인 공부/연결, 설치
[node] MySQL 연결 방법
육츠
2024. 11. 10. 20:49
1. mysql2 설치
npm install mysql2
pakage.json 안에 dependencies 안에 mysql2 가 추가된다.2
2. mysql 데이터 베이스, 테이블 만들어 두기
그래야 연결할 테이블을 정할 수 있고, 정보가 잘 들어오나 확인 할 수 있다.
3. index.js : 가장 기본 버전 (연결만 확인하기 용이하다)
server 의 가장 상위에 .env 를 만들어 보안을 강화하였다.
import express from 'express';
import dotenv from 'dotenv';
import mysql from 'mysql2';
dotenv.config();
const app = express();
const port = process.env.PORT;
app.set(port || 4000);
const connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : process.env.MYSQL_PW,
database : '[db]',
});
connection.connect ((err) => {
if(err){
console.error('Failed to connection', err);
} else {
console.log ('Successfully connected mysql');
}
})
connection.query ('SELECT * FROM [db table]', (error, rows, fields) => {
console.log (rows);
});
connection.end();
3-2. index.js : promise 로 연결 래핑
const connectToDB = () => {
return new Promise((resolve, reject) =>{
connection.connect ((err) => {
if(err){
reject('Failed to connect to MySQL: ' + err);
} else {
resolve('Successfully connected to MySQL');
}
});
});
};
const fetchData = async() => {
try{
const message = await connectToDB();
console.log(message);
const [rows, feilds] = await connection.promise().query('SELECT * FROM [db]');
console.log(rows);
} catch(err) {
console.error('Error:', err);
} finally{
connection.end(); //연결종료
}
};
fetchData();
console 결과 (두 버전 다 동일하다)
mysql 대신 mysql2 를 설치한 이유
mysql2 패키지는 mysql 패키지를 개선한 버전으로, 더 나은 성능과 Promise 기반의 API를 제공하는 MySQL 클라이언트이다.
mysql 과 mysql2 의 큰 차이는 Promise 지원이다. Promise를 사용하면 async/await 구문을 사용하여 비동기 코드의 가독성을 높이고 오류를 처리하기 더 쉬워지도록 도와준다. 또한 Mysql은 새로운 MySQL 기능이나 최신 표준을 지원하지 않는 경우가 있을 수 있으며, mysql2는 버전 8.0 이상과 잘 맞는다고 한다.
때문에 효율적인 Mysql 사용을 위해 mysql2 의 노드 패키지를 설치하였다.
참고: gpt, meek.log
mysql vs mysql2
최근 MySQL과 MySQL2의 다운로드 추이를 비교하고, 새로운 기술 동향에 대한 궁금증을 해소하기 위해 관련 정보를 정리하고 공유하고자 글을 작성해보았습니다.✨
velog.io