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