Node.js

Node.js MySQL 모듈 사용(mysql)

심나라 2022. 12. 25. 10:42
728x90

 

Node.js에서 MySQL에 접속하고 쿼리를 수행하기 우해서 mysql 모듈을 사용합니다.

 

1. MySQL 모듈 설치하기

npm install mysql

 

2. MySQL 사용자 계정 생성하기

Node.js에서 MySQL에 접속하기 위해서 사용자 계정을 생성합니다.

 

- 일반적인 사용자 계정 생성

CREATE USER '사용자ID'@'%' IDENTIFIED BY '비밀번호';

"일반적인 사용자 계정 생성"으로 계정을 생성하면 Node.js를 통해서 접속할 때는 사용할 수 없습니다.

Node.js 같은 외부 접속 시에는 암호화된 비밀번호를 사용해야 합니다. 

 

- 사용자 계정 생성(암호화된 비밀번호 사용)

CREATE USER '사용자ID'@'%' IDENTIFIED WITH MYSQL_NATIVE_PASSWORD BY '비밀번호';

 

3. 사용자 계정에 데이터베이스 사용 권한 주기

"데이터베이스"명으로 생성한 데이터베이스에만 권한을 생성합니다.

GRANT ALL PRIVILEGES ON 데이터베이스명.* to '사용자ID'@'%' WITH GRANT OPTION;
flush privileges;

 

4. 일반적인 사용자 계정 사용시 발생하는 오류

암호화된 비밀번호를 사용하지 않는 계정을 사용시에 SQL 처리시에 아래와 같은 오류가 발새합니다. 

{
    code: 'ER_NOT_SUPPORTED_AUTH_MODE',
    errno: 1251,
    sqlMessage: 'Client does not support authentication protocol requested by server; consider upgradi ng MySQL client',
    sqlState: '08004',
    fatal: true
}

 

[해결방법]

use mysql;
ALTER USER '[계정]'@'[호스트]' IDENTIFIED WITH mysql_native_password BY '[비밀번호]';
flush pribileges;

아래 쿼리로 적용결과 확인 합니다.

select Host, User, plugin, authentication_string from mysql.user;

 

 

 

[참고자료]

  • Node.js 프로젝트 투입 일주일 전 (고승원 지음)

 

728x90