데브코스/강의 정리

5주차 데이터 베이스 GUI, 디비 연동, timezone 설정

케케_ 2024. 9. 14. 15:33

workbench 설치 후 connections 옆 + 버튼을 눌러줌

hostname : 서버가 있는 위치, 즉 내 컴퓨터를 나타내는 ip / localhost 라고 작성해도 됨

port : 데이터 베이스 설치할 때 설정함

 

schemes에 내가 CLI 로 작성한 데이터들을 확인할 수 있음

 

각 데이터 베이스의 테이블을 선택하면 아래에 컬럼들의 정보를 확인 가능

 

 

명령어 치기 전 원하는 스키마의 데이터 베이스를 더블 클릭

명령어 실행 확인

새로운 스키마 생성

 

 


디비 연동

npm 의 mysql2에 나온 예제코드

// Get the client
import mysql from "mysql2/promise";

// Create the connection to database
const connection = await mysql.createConnection({
  host: "localhost",
  user: "root",
  password: "root",
  database: "Youtube", //내가 만든 스키마
});

// A simple SELECT query
try {
  const [results, fields] = await connection.query("SELECT * FROM `users`");

  console.log(results); // results contains rows returned by server
  console.log(fields); // fields contains extra meta data about results, if available
} catch (err) {
  console.log(err);
}

하면 

생성했던 테이블 정보 보여줌

 

 

생긴 오류 (지피티 최고)

Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension.
(Use `node --trace-warnings ...` to show where the warning was created)

이런 오류가 났고 

내 package.json에는 

youtube에 대한 정보가 없었다.

그래서 npm init -y 해주고 "type": "module" 를 새로생긴 유튜버에 대한 정보에 넣어주시 해결됨!!!

 

비구조화

// A simple SELECT query
try {
  const [results, fields] = await connection.query("SELECT * FROM `users`");

  let { id, email, name } = results[0];	//배열의 0번째에 있는 개체를 비구조화함
  console.log(id); // results contains rows returned by server
  console.log(email);
  console.log(name);
  console.log(fields); // fields contains extra meta data about results, if available
} catch (err) {
  console.log(err);
}

 

 


timezone 설정

데이터베이스의 타임스템프 값과 vscode로 출력한 타임스템프 출력값이 다름

SET GLOBAL time_zone = 'Asia/Seoul'

workbench에 설정

GLOBAL로 모든 스키마에 적용

 

  • 시간이 맞춰지긴 했지만, 서울 시간은 아님

 

  • time_zone에 제대로 세팅되지 않은 걸 확인
SET time_zone = 'Asia/Seoul';

위 명령어로 설정

 

  • workbench에서 시간 바뀐 것 확인

그래도 노드 js에는 적용 안됨 

 

 + vscode 시간 출력에 z 빼기

// Create the connection to database
const connection = await mysql.createConnection({
  host: "localhost",
  user: "root",
  password: "root",
  database: "Youtube", //내가 만든 스키마
  dateStrings: true,
});

 

출력

  • z빼려고 했더니 시간도 알아서 맞춰줌