Node.js와 MySQL 연동 시 ER_NOT_SUPPORTED_AUTH_MODE 에러

허태림·2024년 5월 17일
0

Problem

const express = require('express');
const db = require('./lib/db.js');
const app = express();
const port = 1542;

const scheduleRouter = require("./router/schedule");

app.get('/', (req, res) => {
  db.query('SELECT * FROM user_logindata WHERE id = 1', (error, data, fields) => {
    if (error) throw error;

    console.log('connected with DB');
    console.log('test query : ', data);
  });
});

app.listen(port, () => {
  console.log(`api server started on localhost:${port}`);
});

app.use("/schedule", scheduleRouter);

localhost mysql db 사용 중 발생한 에러

nodejs로 통신하려니 위와 같은 플러그인 호환성 문제 발생


Solution

root 유저로 접근하려는데 안됨! 이는 mysql password plugin인 caching_sha2_password를 client 프로그램에서 소화하지 못해서 생기는 오류

(위 사진에선 root가 다른 플러그인을 사용하고 있는데 원래 caching_sha2_password 였음)

즉 mysql 상에서 password plugin을 바꿔야함

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '쌈봉한비번';

바꿔주니 잘 되었다 (비번은 본인 root 계정 비번으로)

profile
泰林 🌳

0개의 댓글

관련 채용 정보