DB 8

Homebrew mysql 설치

mac 에서 mysql 을 설치하는 방법 mysql 홈페이지에서 dmg 파일을 다운 받아서 설치 homebrew 패키지 관리자를 이용하여 설치 평소에는 mysql 8.0을 사용하였지만 mysql 5.7 사용할 일이 있어 5.7을 설치해보았다. # brew 로 설치할 수 있는 mysql 관련 프로그램들을 검색해 볼 수 있음 brew search mysql brew install mysql@5.7 # mysql 서버 시작 mysql.server start # mysql 데몬 실행 brew services start mysql # 데몬으로 실행중인 프로그램 확인 brew services list 이때 mysql.server start 시 아래와 같은 오류 때문에 서버가 실행되지 않았다. mysql 이 실행되고..

JAVA 2022.12.07

애플리케이션 테스트 DB 구분

docker 사용하여 애플리케이션 DB 생성 # docker 로 postgres 컨테이너 실행 # -e 는 환경변수 설정 POSTGRES_PASSWORD를 pass로 사용하겠다. # 마지막 postgres가 이미지 docker run --name ndb -p 5432:5432 -e POSTGRES_PASSWORD=pass -d postgres # docker 컨테이너 들어가기 docker exec -i -t ndb bash su - postgres # db 접속 psql -d postgres -U postgres 우리는 애플리케이션에서 postgresql을 사용하고 test에서는 h2 DB를 사용해야한다면? test 에 관한 설정파일을 따로 만들어줘야한다! 1. test 디렉토리 하위에 resources..

JAVA 2022.08.18

[TEST] Memory DB 사용

Memory DB는 오로지 테스트만 하고 외부 DB를 사용하지 않고 끝내고 싶을때, 테스트를 완전히 격리 된 환경에서 테스트 하기 위해서 사용한다. → JVM 안에서 메모리 모드로 띄우는거다. 테스트 코드 작성 시 운영의 설정파일과 따로 사용 하는 것이 좋다. 테스트 디렉토리 안에 resource 파일 생성 후 설정 파일(application.yml)을 생성하면, 테스트 코드가 실행 시에 그 설정파일을 참조한다. H2 Database Engine Using H2 Documentation Reference: SQL grammar, functions, data types, tools, API Features: fulltext search, encryption, read-only (zip/jar), CSV, ..

JAVA 2022.03.16

[JAVA] JPA란?

JPA를 알아보기 전에 ORM을 먼저 집고 넘어가자! 1. ORM 이란? : 객체와 관계형 DB(RDBMS)를 매핑 해주는 것을 의미한다. : 객체는 ORM을 이용하여 DB에 접근 한다.( 적절한 SQL을 생성하여 DB에 객체를 저장해준다. ) 2. JPA 란? : ORM 기술을 구현한 프레임 워크에 대한 표준화 혹은 기준을 의미한다 ORM 기술을 구현하기 위해 여러가지 프레임워크들이 등장하였는데 각각의 프레임 워크들(Hibernate, CoCobase 등) 은 같은 기능을 해도 각각 필드와 메소드들이 다를 수 있으므로 이러한 것들을 기준을 정해 하나로 통합해주는 것이 JPA 이다. 예를들어, 같은 기능을 정의 하는 메소드가 Hibernate에서는 function dog() , CoCoBase에서는 fu..

JAVA 2021.09.09

[Python] pool_recycle + wait_timeout

Daemon 이 서버의 뒷편에서 계속 돌아가는 경우 SQLAlchemy에서는 쿼리요청이 없더라도 일정주기로 쿼리문을 날려줘서 갱신을 해줘야 connection이 끊기지 않는다. 1. db.py 파일 작성 # pool_recycle은 해당 시간 이후에 connection을 재사용하겠다는 뜻 pool_recycle = 60 * 60 * 2 # 7200초 이후에 connection 재사용 # DB connection이 끊기지 않게 쿼리문 날림 (아래 보기) session.execute('SELECT now()').scalar() ※ 주의할점 : 서버 배포후에 확인 해봐야 할것 : 서버쪽의 vi /etc/my.cnf의 wait_timeout 의 초(seconds)가 pool_recycle 보다 작으면 'Lost..

Python & Django 2021.09.01

[CentOS] CentOS 7 mysql 5.7 install

centos 7은 기본적으로 mariadb가 설치되어 있다. 따라서 mysql을 설치하려면 mariadb를 삭제하고 설치해야함 !! 1. MariaDB remove 기존 mariadb 관련 설치 패키지 확인 yum list installed mariadb\* 설치된 mariadb 패키지 삭제 yum remove -y mariadb.x86_64 yum remove -y mariadb-common.x86_64 # ... 등 관련 패키지 삭제 기존 mariadb에서 사용된 파일 삭제 rm -rf /var/lib/mysql 2. Mysql install wget 설치 yum install wget mysql 5.7 설치 # mysql 다운로드 wget https://dev.mysql.com/get/mysql57..

Server(설정 등) 2021.08.26

[Mysql] DB 사용자 권한 부여하기

※ DB 생성 후 root 권한이 아닌 다른 사용자에게 권한을 부여하는 경우 사용 # 접속 가능한 사용자 추가 create user '사용자'@'localhost' identified by '비밀번호'; # DB 권한 부여하기 grant all privileges on *.* to '사용자'@'localhost'; grant all privileges on DB이름.* to '사용자'@'localhost'; # 사용자 추가 및 권한 변경 후 적용 flush privileges; # 사용자 계정 삭제 drop user '사용자'@'localhost'; # 외부 DB 접속시 비밀번호까지 추가해줘야함 grant all privileges on *.* to '사용자'@'localhost' identified b..

DB 2021.03.24

[Oracle] DB 생성

1. 테이블 생성 CREATE TABLE [테이블 명] ( [컬럼명] [데이터타입] [크기], ... , [컬럼명] [데이터타입] [크기]); CREATE TABLE testtable( username NVARCHAR2(10), age NUMBER(3,0), mobile NVARCHAR2(11), reg_date DATE DEFAULT SYSDATE ); 2. 데이터타입 종류 1) 문자타입(검색속도가 빠르다.) 고정형 CHAR(바이트 수) NCHAR(글자수) 가변형 VARCHAR2(바이트 수) NVARCHAR2(글자수) 2) 숫자 NUMBER( 전체자릿수,소숫점 자릿수 ) NUMBER : 오라클이 알아서 계산 3) 날짜 Date

DB 2021.03.24