MYSQL 설치 및 Sequelize와 연결하기

rkdghwnd·2023년 6월 12일
0
post-thumbnail

MYSQL 데스크탑 설치

커뮤니티 서버와 워크벤치를 각각 설치하거나 인스톨러를 이용해 설치해주면 된다.

MySQL Installer(MySQL Community)

choosing the set up time 에서 custom 체크

[Available Products:]에서
[MySQL Servers] – [MySQL Server] – [MySQL Server 8.0] – [MySQL Server 8.0.21 – X64]를 선택하고
▶버튼을 클릭

[Applications] – [MySQL Workbench] – [MySQL Workbench 8.0] – [MySQL Workbench 8.0.21 – X64]
▶버튼을 클릭
[Documentation] – [Samples and Examples] – [Samples and Examples 8.0] – [Samples and Examples 8.0.21 – X86]
▶버튼을 클릭

계속 진행



Standalone MySQL Server / Classic MySQL Replication’ 선택


[Config Type]을 ‘Development Computer’로 선택
[TCP/IP]가 체크된 상태에서 [Port]가 ‘3306’인 것을 확인
[Open Windows Firewall ports for networkaccess] 체크

  • 만약 3306 포트 충돌이 일어난다면 이미 MySQL이나 MariaDB와 관련된 프로그램이 설치되어 있다는 것입니다. 이런 경우에는 설치를 종료하고, 윈도우즈의 [앱 및 기능]에서 관련 프로그램을 제거한 후 다시 설치를 진행해보세요.


root 비밀번호 설정


MySQL 서버를 윈도우즈의 서비스로 등록하기 위한 설정. [Windows Service Name]은 전통적으로 많이 사용하는 ‘MySQL’로 변경합니다. 나머지는 그대로 두고 [Next] 버튼을 클릭



[Connect To Server]에 연결할 서버가 보이고 [User name(사용자 이름)]에 ‘root’가 입력되어 있다. [Password(비밀번호)]를 앞에서 설정한 비밀번호로 입력하고 [Check] 버튼을 클릭하면
[Status]가 ‘Connection succeeded’로 변경된다. 연결이 성공되었으니 [Next] 버튼을 클릭한다.




[Start MySQL Workbench after Setup]을 체크 해제하고 [Finish] 버튼을 클릭

프로젝트에 MySQL과 Sequelize 세팅하기

npm i sequelize sequelize-cli mysql2

sequelize : node.js에서 사용하는 DB ORM 모듈
sequelize-cli : seuqelize를 CLI 를 통해 제어할수 있게 해주는 모듈
mysql2 : MySQL과 node.js를 연결해주는 드라이버(모듈)

npx sequelize init

sequelize 초기 세팅하기, node.js 환경에 설치한다.
models, migration, seeder, config 등의 sequelize 기본 폴더와 파일이 생성된다.

config.json에 들어가서 password와 database 이름을 수정한다.
password는 MySQL의 비밀번호, database는 프로젝트에서 사용할 DB의 이름이다.


위 코드 처럼 환경변수를 사용하고 싶다면 config.json을 js파일로 바꾸고 코드를 수정해주어야 한다.

models/index.js 파일도 기존의 것을 지우고 수정해주어야 에러가 없다.

"use strict";
// 기존 코드는 문제가 있어서 수정한 코드임
const Sequelize = require("sequelize");

const env = process.env.NODE_ENV || "development";
const config = require(__dirname + "/../config/config.js")[env];
const db = {};

let sequelize;

sequelize = new Sequelize(
  config.database,
  config.username,
  config.password,
  config
); // DB와 sequelize를 연결하는 메소드

// 테이블 가져와서 실행(예시임)
db.Comment = require("./comment")(sequelize, Sequelize);
// db.Hashtag = require("./hashtag")(sequelize, Sequelize);
db.Image = require("./image")(sequelize, Sequelize);
db.Post = require("./post")(sequelize, Sequelize);
db.User = require("./user")(sequelize, Sequelize);
db.Nested_Comment = require("./nested_comment")(sequelize, Sequelize);

// associate 문 실행
Object.keys(db).forEach((modelName) => {
  if (db[modelName].associate) {
    db[modelName].associate(db);
  }
});

db.sequelize = sequelize;
db.Sequelize = Sequelize;

module.exports = db;

코딩을 통해 sequelize의 model을 완성시키고
첫 실행때는 DB가 생성되어 있지 않기 때문에 cli를 이용해 DB를 생성시켜준다
만약 DB구조가 바뀐 경우에는 DB를 삭제하고 다시 생성해주거나, 마이그레이션 기능을 활용하면된다.

npx sequelize db:create

profile
rkdghwnd's dev story

0개의 댓글