2025-02-26학습

airbus·2025년 2월 26일

프로그래머스

목록 보기
26/93

MySQL Workbench

  • CMD 창에서의 CLI방식의 기능과 동일하게 DB관리가 가능한 GUI를 제공하는 프로그램 입니다.
  • DML, TCL 등 SQL문 사용가능 합니다.
  • MySQL Workbench를 MySQL서버에 연결하여 사용하기 위해서는 다음과 같은 방법이 있습니다.
    1) 도커에서 컨테이너를 생성한 다음 (컨테이너)실행
    2) MySQL설치 후 사용

etc) 도커 컨테이너 생성방법

docker run ——name mariadb -d -p 3306:3306 —restart=always -e MYSQL_ROOT_PASSWORD=root mariadb
  • --name (mariadb부분) : 이름
  • -d : 백그라운드 실행
  • -p 3306:3306 : 3306포트 사용
  • —restart=always : 컨테이너 자동 재시작
  • MYSQL_ROOT_PASSWORD=root : ROOT의 비밀번호를 root로 설정
  • 마지막에 있는 mariadb : 이미지

도커를 사용하면 환경변수, 포트충돌, MySQL설치, 버전관리 같은 문제들을 최소화하여 일관된 개발환경 유지가 가능합니다.


AI (Auto Increment)

  • row(인스턴스) 생성시 자동으로 값을 추가합니다.
  • 입력받았던 값들 중 최대 값을 기준으로 증가합니다.
    ex1) id 값이 1, 2 가 존재할 때 다음 id 값은 3부터 시작
    ex2) 중간에 삽입추가가 실패한 경우도 카운트 되어 값이 증가합니다. id값이 1이 있는 상태에서 (실패) (실패) -> 4부터 시작
    ex3) 값을 수정하여도 저장되어있는 데이터를 바탕으로 값을 증가시킵니다. id값이 1, 2, 4가 있는 상태에서 추가하면 5부터 시작합니다. 이때 id 5를 3으로 수정한 다음 데이터가 추가되어도 id 값은 6부터 시작됩니다.

Time Zone

  • created_at컬럼의 데이터 타입을TIMESTAMP 디폴트 값을CURRENT_TIMESTAMP()로 하여 시간을 저장하고, VSC에서 연동하여 시간을 불러 오면 workbench와 VSC에서 표기되는 시간이 다르게 나옵니다.
// 다음 내용을 query 창에 입력하여 시간대를 설정
SET GLOBAL time_zone = 'Asia/Seoul'; //전역 시간대 설정

SELECT @@global.time_zone; // 시간대 확인

===> SELECT @@global.time_zone, system; 

SET time_zone = 'Asia/Seoul'; //세션의 사간대 설정
  • VSC에서 시간이 2025-02-26T00:04:34.000Z 처럼 나오는 경우 //.000Z는 소수점 영역
    mysql을 연동한 부분에 dateString 을 추가하고 값을 true로 설정합니다.
const connection = mysql.createConnection({
    host: '127.0.0.1',
    user: 'root',
    password: 'root',
    database: 'youtube',
    dateStrings : true <= 
});

MySQL과 VSC 연동

1) mysql2 npm 모듈을 설치합니다. 링크
npm i --save mysql2

2) mariadb.js 파일 생성후 모듈화

// Get the client
const mysql = require('mysql2'); // mysql2 모듈 사용

// mysql 데이터베이스와 연결
const connection = mysql.createConnection({
    host: '127.0.0.1', // localhost가 오류나면 좌측처럼 숫자로 변경하면 해결됨
    user: 'root',
    password: 'root',
    database: 'youtube', // 스키마 이름
    dateStrings : true // 소숫점 제거
});
~
~
module.exports = connection // 모듈화

3) 데이터베이스를 사용할 파일에 모듈추가(경로)

const express = require('express')
const router = express.Router()
const conn = require('../../../w6/5-6/mariadb') <-
router.use(express.json())
~
~

위와 같은 방법으로 MySQL Workbench에서 생성한 DB를 VSC에 연동하여 사용할 수 있습니다.

0개의 댓글