일단 nodejs의 기본 모듈 중에서 mysql을 다루는 모듈은 없다
따라서 누군가가 만든 모듈을 다운받아서 쓰자
npm install mysql --save
mysql 모듈을 다운받고 --save는 dependencies에 자동으로 추가해주는 것을 의미한다.
설치하고 나서 mysql을 root 유저를 이용해 사용하려고 했는데 안되기 때문에 유저를 새로 만든다.
mysql에 접속해서 아래와 같이 해준다.
mysql> create user 'nodejs'@'%' identified by '1234';
Query OK, 0 rows affected (0.01 sec)
mysql> select user, host from mysql.user;
+------------------+-----------+
| user | host |
+------------------+-----------+
| nodejs | % |
| connectuser | localhost |
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+------------------+-----------+
6 rows in set (0.00 sec)
유저 생성
mysql> grant all privileges on opentutorials.* to 'nodejs'@'%';
Query OK, 0 rows affected (0.01 sec)
mysql> flush privileges
-> ;
Query OK, 0 rows affected (0.01 sec)
권한 부여, 적용하기
var mysql = require('mysql');
// 비밀번호는 별도의 파일로 분리해서 버전관리에 포함시키지 않아야 합니다.
var connection = mysql.createConnection({
host : 'localhost',
user : 'nodejs',
password : '1234',
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 이다.
mysql 모듈을 먼저 require 하고
connection에 createConnection으로 인자에 필요한 정보를 넣어서 생성한다. 나는 nodejs라는 유저를 비밀번호 1234로 만들어서 저렇게 넣어준다
connect로 연결하고
connection.query로 원하는 쿼리를 넣어서 실행할 수 있다.
쿼리를 넣어서 실행하고 콜백함수의 error는 에러가 발생하면 내용이 채워지기 때문에 if (error)로 조건문을 사용할 수 있고
쿼리문의 실행 결과는 results가 받게 된다.
result를 로그에 찍어서 실행결과를 확인하자

이번에는 정상적으로 쿼리문이 실행된 결과가 표시된다.