MySQL Workbench로 DB 구축하기

조하운·2023년 4월 3일
0

지난 이야기

저번 포스팅에서는 성공적으로 AWS EC2에 MySQL을 띄워 줌으로써 원격 서버에서 DB server를 설치했다. 이번에는 이제 실제적으로 프로젝트를 위해 여러가지 data를 구성해 놓은 것을 SCV라는 Database이름으로 구축할 것이다.


먼저 이전에 local 환경에서 작업했던 DB 모델을 그대로 원격 서버에 로드할 계획이다.

1. 로컬 작업 DB를 서버에 옮기기

  1. local에서 작업했던 mysql server 불러오기 > Database 목록에서 reverse engineering

계속 continue 눌러주면 다음과 같이 이전에 작업했던 내용이 시각화되어 나온다.

  1. Forward Engineer 클릭
  1. 내용을 복사하고자 하는 Stored Connection을 선택

  2. 불러올 MySQL object를 선택하고 확인

그 다음으로 가면 mysql workbench가 친절하게 실행될 쿼리문을 보여준다.

-- MySQL Workbench Forward Engineering

SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

-- -----------------------------------------------------
-- Schema mydb
-- -----------------------------------------------------
-- -----------------------------------------------------
-- Schema SCV
-- -----------------------------------------------------

-- -----------------------------------------------------
-- Schema SCV
-- -----------------------------------------------------
CREATE SCHEMA IF NOT EXISTS `SCV` DEFAULT CHARACTER SET utf8mb3 ;
USE `SCV` ;

-- -----------------------------------------------------
-- Table `SCV`.`member`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `SCV`.`member` (
  `no` INT NOT NULL AUTO_INCREMENT,
  `id` VARCHAR(20) NOT NULL,
  `password` VARCHAR(20) NOT NULL,
  `name` VARCHAR(8) NOT NULL,
  `phone` CHAR(11) NULL DEFAULT NULL,
  `email` VARCHAR(45) CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_0900_ai_ci' NOT NULL,
  PRIMARY KEY (`no`, `id`),
  UNIQUE INDEX `id_UNIQUE` (`id` ASC) VISIBLE,
  UNIQUE INDEX `password_UNIQUE` (`password` ASC) VISIBLE)
ENGINE = InnoDB
AUTO_INCREMENT = 2
DEFAULT CHARACTER SET = utf8mb3;


-- -----------------------------------------------------
-- Table `SCV`.`cctv`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `SCV`.`cctv` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `owner` VARCHAR(20) NOT NULL,
  `address_street` VARCHAR(45) NULL DEFAULT NULL,
  `address_detail` VARCHAR(45) NULL DEFAULT NULL,
  `name` VARCHAR(45) NOT NULL,
  PRIMARY KEY (`id`),
  INDEX `owner_idx` (`owner` ASC) VISIBLE,
  CONSTRAINT `owner`
    FOREIGN KEY (`owner`)
    REFERENCES `SCV`.`member` (`id`))
ENGINE = InnoDB
AUTO_INCREMENT = 2
DEFAULT CHARACTER SET = utf8mb3;


-- -----------------------------------------------------
-- Table `SCV`.`image`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `SCV`.`image` (
  `no` INT NOT NULL AUTO_INCREMENT,
  `filename` VARCHAR(45) NOT NULL,
  `cctv_id` INT NOT NULL,
  `image_data` BLOB NULL DEFAULT NULL,
  PRIMARY KEY (`no`, `cctv_id`),
  INDEX `cctv_id_idx` (`cctv_id` ASC) VISIBLE)
ENGINE = InnoDB
AUTO_INCREMENT = 4
DEFAULT CHARACTER SET = utf8mb3;


SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;

결과

아래 스샷을 보면 SCV-server2 라는 원격 mysql 서버에 local에 있던 SCV라는 DB가 성공적으로 복사된 것을 확인할 수 있다.

다음 포스팅

이제 인프라 구축은 99% 정도 완성되었고, git 레포지토리의 내용을 옮기기만 하면 될 것 같다. 그 전에 python으로 로컬 환경에서 작업해서 처리한 이미지 데이터를 MySQL DB로 옮기는 테스트를 해 보아야 하니, 다음 포스팅에서 이에 대해 작성해보려고 한다.

profile
| 컴퓨터 비전 | 딥 러닝 | 자율주행 |

0개의 댓글