본문 바로가기

Docker

MariaDB 사용하기

1. 볼륨 폴더 생성

 

mkdir -p /home/ubuntu/volumes/mariadb/data

 

cd /home/ubuntu/volumes/mariadb

 

 

2. docker compose 파일 생성

 

vi docker-compose.yml

 

version: '3.1'

networks:

  db-connection:
    driver: bridge



services:

  db:
    container_name: db
    image: mariadb:10.8.2-rc
    restart: always
    environment:
      MARIADB_ROOT_PASSWORD: 1234
    ports:
      - 3306:3306
    volumes:
      - /home/ubuntu/volumes/mariadb/data:/var/lib/mysql
    networks:
      - db-connection

 

- container_name: 컨테이너 이름
- image: 사용할 도커 이미지
- restart: 재시작 여부, always = 항상
- environment: 환경 변수 설정
      MARIADB_ROOT_PASSWORD: 1234 기본 비밀번호 
- ports: 사용 포트
- volumes: 볼륨 경로

 

 

3. 실행 후 설정하기

 

docker-compose up -d

 

권한 문제가 발생시

sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker

 

 

docker exec -it db bash

 

mysql_secure_installation

 

위 명령어를 입력하면 아래와 같은 질문이 나옴

 

Enter current password for root (enter for none):  초기 비밀번호 입력

Switch to unix_socket authentication [Y/n] n : 루트 패스워드 접속을 위해 n을 입력

Change the root password? [Y/n] y : 루트 패스워드를 바꿀 것인가?

Remove anonymous users? [Y/n] y : 익명 유저를 삭제할 것인가

Disallow root login remotely? [Y/n] y : 외부 접속을 허용할 것인가

Remove test database and access to it? [Y/n] y : 테스트 디비를 삭제할 것인가

Reload privilege tables now? [Y/n] y : 지금 바로 적용할 것인가

 

 

 

 

 

4. 외부 접속 설정 

 

1) 유저 생성 & 권한 설정

 

create database [my database name] character set utf8mb4 collate utf8mb4_general_ci;

 

use mysql;

 

create user '[user name]'@'%' identified by '[password]';

 

grant all privileges on [my database name].* to [user name]@'%';

 

flush privileges;

 

 

 

2) 설정 파일 수정

 

vi /etc/mysql/mariadb.conf.d/50-server.cnf

# bind-address를 주석처리
#bind-address            = 127.0.0.1

 

service mysql restart
service mariadb restart

 

 

3) 포트 설정

자신이 사용하는 포트를 열어준다.

 

우분투 20.04를 사용할때 포트가 안열리면 해결방법

참조 https://www.vultr.com/docs/how-to-configure-uncomplicated-firewall-ufw-on-ubuntu-20-04/

 

sudo apt-get install ufw
sudo ufw enable

 

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 22/tcp
sudo ufw allow mysql

 

 

현재 포트 상태를 보려면

 

sudo ufw status