Project/Error Handling

express mysql session 에러

디스페어 2023. 2. 9.

error: er_not_supported_auth_mode: client does not support authentication protocol requested by server; consider upgrading mysql client

 

Node.js와 MySQL이 연동되지 않을때 발생하는 에러

 

대표적인 해결방법으론 MySQL 터미널에서 root의 plugin을

caching_sha2_password 에서 mysql_native_password 로 변경하는 것 등이 있지만

본문에선 기본적으로 MySQL과 Node.js가 평상시 정상적으로 연결이 될 때를 기준으로 서술함

 

 

 

초 - 간단한 해결 방법

 

중괄호도 넣어주면 된다

//index.js -> 메인
const session = require("express-session");
...
dbConfig = require("./config/config");
const conn = dbConfig.init();
dbConfig.connect(conn);
const MySQLStore = require("express-mysql-session")(session);
...
const sessionStorage = new MySQLStore({}, dbConfig.init()); //Yes
//const sessionStorage = new MySQLStore(dbConfig.init()) //No
//=> 이렇게 입력해서 발생된 에러
...
store: sessionStorage,

//config/config.js -> DB 접근 설정
const mysql = require("mysql");
const dotenv = require("dotenv");
dotenv.config();
const dbInfo = {
  host: process.env.HOST,
  port: process.env.PORT,
  user: process.env.USERNAME,
  password: process.PASSWORD,
  database: process.env.NAME,
};
...
module.exports = {
...
  init: function () {
    return mysql.createConnection(dbInfo);
  },
  ...
  }

 

그 후 테이블을 확인해보면
깔끔하게 잘 들어간다 ^오^ 기분 굿

 

 

 

Reference

express mysql session 공식문서

반응형

댓글