봄날은 갔다. 이제 그 정신으로 공부하자

node.js로 웹서비스 만들기 (2. mysql 설정하기) 본문

학습

node.js로 웹서비스 만들기 (2. mysql 설정하기)

길재의 그 정신으로 공부하자 2023. 6. 29. 11:11

이번 글에서는 이전 글에서 설치한 mysql을 프로젝트에서 사용할 수 있도록 기본 설정을 한 후, DB를 생성하고 서비스에 사용될 table들을 만들고 프로젝트에 연결해주고 마지막으로 DBeaver을 연동하는 부분까지 설명합니다.

 

이전 글에서 mysql을 설치하였기 때문에 제대로 설치되었고 현재 어떤 상태인지 확인

$  brew services list

 

mysql이 시작되어 있지 않다면 아래 명령어를 사용해 mysql 실행

$ brew services start mysql

 

아래 명령어를 통해 root 비밀번호 설정하기

$ mysql_secure_installation

 

root 권한으로 mysql 접속

$ mysql -u root -p

 

db 생성하기

mysql> create database newquizdb;

 

db가 정상적으로 생성되었는지 확인 

mysql> show databases

 

접속 가능한 사용자 추가하기

mysql> create user 'quizowner'@'localhost' identified by '비밀번호';

 

외부 접속 허용을 위한 DB 권한 부여하기 (DBeaver 연동을 위해)

mysql> grant all privileges on *.* to 'quizowner'@'localhost';
mysql> grant all privileges on newquizdb.* to 'quizowner'@'localhost';

 

서비스에 필요한 table 생성하기

// 우선 use 명령어를 사용하여 추가하려면 DB를 활성화
mysql> use newquizdb;

table 생성

mysql> CREATE TABLE `manager` (
`mid` INT NOT NULL AUTO_INCREMENT,
`createdAt` DATE NOT NULL,
`editedAt` DATE NOT NULL,
`id` VARCHAR(256) NOT NULL,
`pwd` VARCHAR(512) NOT NULL,
`nick` VARCHAR(256) NULL,
`profile` VARCHAR(256) NULL,
`level` INT NOT NULL,
CONSTRAINT quiz_pk PRIMARY KEY(mid));

mysql> CREATE TABLE `quiz` (
`qid` INT NOT NULL AUTO_INCREMENT,
`createdAt` DATE NOT NULL,
`contents` VARCHAR(256) NOT NULL,
...

 

newQuiz 프로젝트에 localDB 연동하기

프로젝트에 “config” 폴더 만들고 “db.js” 파일 생성한 후에 newquizdb 연동을 위해 아래와 같이 코딩

이후, index.js 파일에서 호출 및 connect 처리

// mysql
var dbConfig = require(__dirname + '/config/db.js');
var conn = dbConfig.init();
dbConfig.connect(conn);

 

여기까지 했으면 이제 아래와 같이 정보를 불러오거나 저장하는 것이 가능해집니다.

// 읽기
app.get('/categories', function(req, res){
    var sql = 'SELECT * FROM category';
    conn.query(sql, function (err, rows, fields) {
        if(err) console.log('query is not excuted. select fail...\n' + err);
        else res.render(__dirname + '/view/cate.ejs', {list: rows});
    });
});

// 쓰기
app.post('/addCate', function(req, res){
    var body = req.body;
    console.log(body);

    var sql = 'INSERT INTO category VALUES(?)';
    var param = [body.cate];
    console.log('addCate sql: ' + sql);
    conn.query(sql, param, function(err){
        if(err) console.log('query is not excuted. insert fail...\n' + err);
        else res.redirect('/categories');
    });
});

 

localDB와 DBeaver 연동하기

이전 글에서 설치한 DBeaver 실행 후 “데이터베이스(D)”의 “새 데이터 베이스 연결” 버튼 선택

 

MySQL 선택하고 Next 버튼 선택

 

Database 이름과 userName 그리고 password를 모두 입력 한 후 하단 왼쪽 “Text connection…” 버튼 선택


정상적으로 연결되는 것을 확인하고 “Finish” 버튼을 눌러 연결 생성

 

연결된 DB가 아래와 같이 보이면 연결 완료!!!

Comments