Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DB 설정 #1

Open
3 of 4 tasks
kir3i opened this issue Sep 3, 2021 · 2 comments
Open
3 of 4 tasks

DB 설정 #1

kir3i opened this issue Sep 3, 2021 · 2 comments
Labels
documentation Improvements or additions to documentation

Comments

@kir3i
Copy link
Member

kir3i commented Sep 3, 2021

1. EC2에 MariaDB 설치 (Docker 이용)

docker-compose.yml 작성

version: '3.1'

services:
  db:
    container_name: mariadb
    image: mariadb
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: 비번1
      MYSQL_DATABASE: project_bb
      MYSQL_USER: db_master
      MYSQL_PASSWORD: 비번2
    ports:
      - "3306:3306"
    volumes:
      - ./data/db:/var/lib/mysql
    command:
      - --character-set-server=utf8mb4
      - --collation-server=utf8mb4_unicode_ci

이미지 실행

docker-compose up -d

TODO

  • root, db_master 계정 권한 수정
  • docker-compose에서 초기 설정할 수 있는 옵션 더 알아보기
  • 포트 번호 변경
  • Docker Container 내렸다가 올려도 DB 연결 잘 되는지 확인
@kir3i kir3i added the documentation Improvements or additions to documentation label Sep 3, 2021
@kir3i
Copy link
Member Author

kir3i commented Sep 7, 2021

2. mysql 접속 및 설정

로컬에서는 다음과 같은 에러메시지가 뜨면서 접속이 안된다.

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

따라서 docker exec을 이용해 접속해야 한다.

docker exec -it mariadb bash    // 쉘 접속
root# mysql -u root -p          // mysql 접속

이후 권한 설정을 변경한다. 우선 외부 ip에서 root 유저에 접근할 수 없도록 차단한다.

use mysql;
select user, host, plugin from user;
delete from user where user='root' and host='%';

다음으로 언어 관련 설정을 변경한다. 현재 상태는 mysql 콘솔 상의 status 명령어로 확인할 수 있다.
언어 설정 변경을 위해 /etc/mysql/my.cnf 파일을 수정해야 한다. 이 때 텍스트 편집기 vim이 필요하므로, 컨테이너에 설치되어 있지 않다면 따로 설치한다. (컨테이너에 설치된 리눅스 버전 파악, 이후 vim 설치)
my.cnf 파일에 다음과 같은 내용을 추가한다.

[client]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

[mysqld]
collation-server = utf8_unicode_ci
init-connect = 'SET NAMES utf8'
character-set-server = utf8

수정한 내용을 저장한 뒤, 컨테이너를 재시작 해야 적용된다.

docker restart mariadb

이후 외부에서 root 계정으로 접속할 수 없음을 확인할 수 있다.

@kir3i
Copy link
Member Author

kir3i commented Sep 7, 2021

기타 사항

  1. docker-compose에서 초기 설정할 수 있는 항목은 링크를 참고하자.
  2. docker-compose up -d로 컨테이너를 올린 이후, docker-compose down으로 컨테이너를 내릴 수 있다. 이렇게 할 시, 컨테이너를 올렸다 내렸다 해도 DB 연결이 잘 된다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

No branches or pull requests

1 participant