Docker 가 보편화 되기 이전에는 개발 환경 셋팅에 정말 많은 공수가 필요 했습니다.

하지만 Docker는 애플리케이션과 그 의존성을 컨테이너로 패키징하여 독립성과 경량화 장점을 갖고 있습니다.

물론 빠른 배포, 빠른 스케일링 장점도 있지만 우선 Docker 환경에서 컨테이너를 올려보겠습니다

 

그러면 mysql 컨테이너를 만들어보겠습니다.

 

어떻게 Docker 환경에서 mysql 컨테이너를 생성할 수 있을까요?

우선 컨테이너의 생성을 위한 순서는 아래와 같습니다.

1. docker-compose.yml 파일 생성

2. Dockerfile 생성

3. docker-compose up 명령어 실행

    - 1) Dockerfile 정의 내용을 기반으로 이미지 빌드

    - 2) 이미지를 사용하여 컨테이너 생성 및 실행

4. 생성 컨테이너 확인

 

위의 순서에 맞게 하나씩 진행 해보겠습니다.

 

(그림. 프로젝트 디렉토리)

 

1. 프로젝트 최상위 디렉토리에 docker 디렉토리 및 docker-compose.yml 파일 생성 (그림. 프로젝트 디렉토리)

  • 저는 스프링 부트 프로젝트 입니다.
version: '1'

services:
  mysql:
    build:
      dockerfile: mysql/Dockerfile
    container_name: mysql
    environment:
      MYSQL_ROOT_PASSWORD: 1234
    ports:
      - "3306:3306"
  • service:mysql:builder:dockerfile 에 Dockerfile 경로를 입력 해주세요(mysql/Dockerfile)

 

2. docker 디렉토리에 mysql 디렉토리 및 Dockerfile 생성 (그림. 프로젝트 디렉토리)

# 베이스 이미지 설정
FROM mysql:latest
  • Dockerfile 사용 예시를 공유하기 위해 베이스 이미지 설정만 추가 했습니다.

 

3. 프로젝트 docker 디렉토리 이동 및 docker 실행

docker-compose up -d
  • -d 옵션은 컨테이너를 백그라운드에서 실행하고 터미널 사용 제어권을 반환하는 역할을 합니다.

 

 

4. mysql 컨테이너 확인

docker exec -it mysql mysql -uroot -p
  • 해당 명령어 입력 후 비밀번호 입력 프롬프트가 표시됩니다. 이때 docker-compose.yml 에 설정한 비밀번호를 입력해주세요.

 

이렇게 Docker 환경에서 mysql 컨테이너 생성 예제가 완료 되었습니다.

 

 

컨테이너의 환경 설정을 docker-compose.yml 파일에 할지, Dockerfile에 할지 정확한 답은 없습니다.

만약 고민이 되신다면 아래 포스트를 참고 해주세요.

https://gabrielyj.tistory.com/225

 

안녕하세요, 전날까지 사용하던 MariaDB가 갑자기 아래 처럼 접근 거부 에러를 발생 시켰습니다.

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)


제가 말씀 드리는 부분은 오직 '잘 되던 MariaDB' 문제고, 비밀번호를 잊어버리신 분은 다른 포스트를 참고 해주세요! 

 

1. 실행 창 (CTRL + R) 

2. services.msc 검색

3. 3306 포트를 사용 하는 2개 이상의 DB 시작 유형이 '자동'이라면 다른 DB가 3306포트를 우선 사용 할 수 있습니다.

  저는 MariaDB를 사용 하는데 MySQL57이 실행 중일 때 접근 거부 에러가 발생 했습니다.

4. 사용하지 않는 DB 우클릭 -> 시작 유형을 '수동' or '사용하지 않음'으로 해주세요

스프링 프로젝트와 연동을 하기 위해 MariaDB를 설치 하려고 합니다.

아래 링크에서 들어가고, 원하는 버전을 선택해주세요. 저는 Window x86_64버전을 다운 받았습니다.

https://downloads.mariadb.org/mariadb/10.3.15/

 

MariaDB 10.3.15 Stable - MariaDB

 

downloads.mariadb.org

 

 

 

설치가 완료 후 cmd창에서 설치된 MariaDB 디렉토리에 접근합니다. 그리고 'mysql --version'을 입력하시면 됩니다.

 

그러면 설치된 MariaDB 버전을 확인 하실 수 있습니다.

그 다음 'mysql -u root -p' 를 입력 하시면 password를 입력 할 수 있고, 원하시는 비밀번호를 입력하면

해당 비밀번호가 root 계정의 비밀번호로 초기화됩니다.

 

개인 프로젝트를 진행하기 위해서 DB를 구축해야 할 필요성을 느꼈습니다.

어떤 DB를 사용할지 고민을 하다가 개인 프로젝트에는 mariaDB 가 가장 적합하다 생각했습니다.

mariaDB는 Mysql 의 제작자들이 해당 DB를 기반으로 새로운 DBMS를 개발 하였습니다. 

보통 mariaDB를 Mysql의 자매품이라고 부르는데, 그만큼 호환성이 좋고 Mysql 기능들을 mariaDB에서 사용할 수 있습니다. 


설치 작업을 진행 하겠습니다. 아래 url에서 필요하신 버전을 선택 하시고 설치 파일을 다운로드 해주시기 바랍니다.


https://downloads.mariadb.org/






























우선 DB root권한 접근에 사용될 비밀번호를 입력 해주세요.

그리고 저는 개인 프로젝트를 진행할 때 DB서버를 구축해놓고 원격으로 관리를 하려고 합니다. 

그래서 'Enable access from remote machines for 'root' user' 를 체크 하였습니다.

그리고 서버에서도 default Encoding을 UTF-8로 사용할 예정이기 때문에 'Use UTF8 as default server's character set'도 체크 하였습니다.

























설치가 종료된 후 잘 완료 되었는지 확인 하기위해 mariaDB에 직접 접근 해보려고 합니다.

파일 검색에서 'MySQL Client (MariaDB 10.3(x64)) 를 실행 해주세요.









아래처럼 비밀번호 입력 하라는 콘솔을 뜨면, 설치 당시 입력 하셨던 비밀번호를 입력 해주시면 됩니다.







비밀번호를 올바르게 입력하시면 로칼 DB 서버에 접속하게 됩니다.












테이블에 자동 인덱스값을 주기 위해선 AUTO_INCREMENT 사용하면 됩니다.

NOT NULL에 사용 했는데 저는 안 되더라구요... 그래서 저는 PK 를 줬습니다.

혹시 왜 안되는지 아시는분은 꼭 좀 알려주세요!!


id INT PRIMARY KEY AUTO_INCREMENT


MariaDB 는 Mysql 의 제작자들이 해당 DB의 기반으로 새로운 DBMS를 개발 하였습니다.

보통 MariaDB를 Mysql 의 자매품이라고 부르는데, 그만큼 호환성이 좋고 Mysql 에서 사용할 수 있는 많은 내용들을 MariaDB 에서 사용할 수 있습니다.


 그래서 MariaDB를 사용할 때 Mysql의 JDBC를 사용할 수 있는데, 그래도 MariaDB의 JDBC가 

존재하니, 굳이 전자를 사용할 필요 없다고 생각 합니다 ㅎㅎ


필요하신 분은 아래 링크에서 JDBC 를 해주시면 됩니다.


1. MySQL JDBC 다운로드 링크

https://dev.mysql.com/downloads/connector/j/


2. MariaDB JDBC 다운로드 링크

https://downloads.mariadb.org/connector-java/

+ Recent posts