어제를 마지막으로 Basic Challenge를 마무리 지었다. 22일동안 꾸준하게 했기 때문에 이 습관을 유지하기 위해서 나는 먹이를 찾는 하이에나처럼 할 일을 찾기 시작했다. 새로운 것을 찾아 공부해볼까라는 생각도 있었지만, 그래도 챌린지를 하면서 학습했던 부분을 계속해서 이어나가보고 싶었다. 아무래도 Node.js
와 MySQL
의 기초를 학습하면서 둘을 연동시켜 활용하지 못했던 것이 아쉬워서 그랬던 것 같다. 다행히도 초심자의 빛 같은 존재인 유튜브 생활코딩 채널에서 Node.js & MySQL 영상강의를 찾을 수 있었고, 챌린지가 종료되었지만 연장선으로 스스로 공부해보자 생각했고 실습강의를 통해서 가능하면 내가 만들었던 간단한 웹 사이트에 적용해보고 싶었다.
Node.js
에서 MySQL
서버에 접속해서 정보를 가져오고 수정하는 작업에 대해서 알아보는 과정이었다. 아쉽게도 Node.js
기본 모듈 중에서는 MySQL
을 제어하는 모듈이 존재하지 않는다. 그래서 구글링을 통해서 인생은 구글 타인이 만들어놓은 모듈을 활용한다.
$ npm install mysql
npm
을 통해서 MySQL
모듈을 설치해준다.
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : '비밀번호',
database : 'opentutorials'
});
connection.connect();
connection.query('SELECT * FROM topic', function (error, results, fields) {
if (error){
console.log(error);
};
console.log(results);
});
connection.end();
이처럼 타인이 작성한 모듈 코드를 mysql.js
라는 파일에 작성한 후 실행을 시켰더니,
왜 안 나오나 섭섭할 뻔했다. 처음 공부할 때는 error를 만나면 너무나도 당황스러웠는데, 이제는 너무나 자연스럽게 구글에 접속한다. 인생은 구글
sqlMessage: 'Client does not support authentication protocol requested by server; consider upgrading MySQL client'
이 문제는 클라이언트 프로그램에서 MySQL
패스워드 Plugin 'caching_sha2_password'을 소화하지 못해서 생기는 오류라고 한다.
클라이언트 프로그램에서 사용할 수 있도록 유저의 패스워드 Plugin 'mysql_native_password'으로 바꿔주는 작업을 했다.
ALTER user '유저명'@'localhost' IDENTIFIED WITH mysql_native_password by '비밀번호';
정상적으로 MySQL
에 접속하여 출력되는 것을 확인할 수 있었다.