[Docker] Docker에 MariaDB 설치하기

목차

  1. MariaDB란?
  2. MariaDB를 Docker에 설치하기
  3. MariaDB에 기본 테이블 생성하기
  4. HeidiSQL로 접속하기


MariaDB란?

이번 MariaDB 포스팅은 mySQL 환경 설정 포스팅과 상당히 유사하다. 왜냐하면 이 둘은 자매이기 때문이다. 원래 오픈소스였던 mySQL이 대기업으로 흡수된 후 mySQL을 만든 사람이 다시 만든 DB이기 때문에 그렇다. 이 둘은 동일한 소스코드를 사용하며, 구조도 동일하고, 심지어 사용하는 port도 같다.

MariaDB란 무엇인가?는 위키피디아 링크를 참고하시기를 바란다. 본 포스팅에서는 WSL2 - Docker에 설치하는 데에 집중하여 기술하려 한다.


MariaDB을 Docker에 설치하기

  1. 먼저 hub.docker.com로 이동하여 검색창에 ‘mariadb’를 입력하자.
    MariaL을 검색 후 제일 많이 다운로드한 공식 이미지를 찾자


  2. 화면의 내용을 쭉 읽어봐도 좋지만 아래를 입력하여 MariaDB image를 본인의 컴퓨터로 데려오면 된다.

    1
    docker pull mariadb

    docker pull 결과


  3. 데려온 docker image를 먼저 확인하여 정상적으로 MariaDB image가 표시되는지 확인한다.

    1
    docker images

    MariaDB image 표시


  4. Container를 생성한다.

    1
    docker run --name mariadb01 -p 3307:3306 -e MYSQL_ROOT_PASSWORD="<YourStrong@Passw0rd>" -d mariadb

위의 각 항목은 다음과 같다.
(1) docker run : docker image에서 container를 생성한다.
(2) –name mariadb01 : container의 이름은 mariadb01로 한다.
(3) -e : container 내 변수를 설정한다.
(4) MYSQL_ROOT_PASSWORD=”암호” : ROOT 암호를 설정 따옴표 내의 내용은 암호이다.
(5) -d mariadb : mariadb이라는 이미지에서 분리하여 container를 생성한다.
(6) -p 3307:3306 : 해당 container의 port forwarding에 대해 inbound는 3307로 하고, outbound는 3306으로 설정한다.

이것은 Docker의 port forwarding 기능이다. 외부에서 접속 시 3307 포트를 사용하여 container에 정보를 전달하면, container는 내부적으로 3306 포트를 사용하여 처리하고 정보를 외부로 보낸다.
이렇게 설정하는 이유는 mySQL의 port도 MariaDB와 동일하게 3306 포트를 사용하기 때문이며, 필자는 이 두개를 모두 설정해 두고 테스트하기 때문이다. 동시에 동일한 포트에 신호를 주면 오류가 발생한다.


이를 실행하면 다음과 같이 나타난다.

MariaDB container 생성

  1. 생성한 컨테이너가 정상적으로 실행 중인 지 확인한다.

    1
    sudo docker ps -a

    mariadb01 container 확인


  2. 이제 생성한 Container를 이용하여 MariaDB 서버를 실행해본다.

    1
    sudo docker exec --user="root" -it mariadb01 bash

    mariadb01 container의 bash


  3. 다음은 MariaDB Database를 실행시킨다. MariaDB는 mysql 콘솔로 실행한다.

    1
    mysql --user=root --password="<YourStrong@Passw0rd>"

아래와 같이 mysql 프롬프트가 나타나면 성공적으로 접속한 것이다.

mariadb01 container의 bash


MariaDB에 기본 테이블 생성하기

아래는 기본적인 MariaDB의 명령어이자, GUI를 사용하기 전에 새로운 Database와 Data Table을 생성하는 과정이다. 명령어도 볼 겸 한 번 따라해 보자.

  1. MariaDB Database 접속 후 서버 내 모든 데이터베이스 이름 확인하는 방법

    1
    MariaDB> SHOW DATABASES;
  2. DATABASE 생성하기

    1
    MariaDB> CREATE DATABASE 데이터베이스이름;
  3. 데이터베이스 사용

    1
    MariaDB> USE 데이터베이스이름;
  4. 특정 DB 내 모든 Table 보기

    1
    MariaDB> SHOW TABLES;
  5. Data Table을 생성하기

    1
    MariaDB> CREATE TABLE 데이터테이블이름 (데이터명 데이터유형);
  6. Data Table에 데이터 입력하기

    1
    MariaDB> INSERT INTO 데이터테이블이름 (데이터명) VALUES(데이터값);
  7. Data Table의 데이터 보기

    1
    MariaDB> SELECT * FROM 데이터테이블이름;

결과는 아래와 같다.

MariaDB 실행 결과


HeidiSQL로 접속하기

HeidiSQL이 MariaDB의 공식 GUI도구는 아니다. 그냥 필자의 Database 환경 설정 포스팅의 구성상 DB 설치 후 GUI 도구를 하나 소개해야 해서 고민하다가 HeidiSQL로 정했다. 국산 도구들은 나중에 따로 떼서 설명할까 싶어서.

앞서 언급한 바와 같이 MariaDB는 mySQL과 동일한 소스코드, 동일한 구조, 동일한 포트를 사용하므로 mySQL 환경 설정 포스팅에서 설명한 Workbench를 사용해서 접속해도 무방하다.

이번에 소개할 HeidiSQL도 GUI 도구이며, 오픈소스이다.

  1. 먼저 HeidiSQL 설치를 위해 공식 홈페이지로 이동하자.


  2. 다운로드 페이지 상단의 링크를 클릭하여 다운로드하자.

HeidiSQL Installer 다운로드

  1. HeidiSQL Installer를 실행하면 아래와 같은 화면이 나타난다. 아쉽게도 설치 과정에서는 한글을 지원하지 않는다.

HeidiSQL Installer 설치 언어 선택

  1. 설치 과정은 그냥 무심히 다음, 다음, 종료하면 된다. 우리가 일상적으로 진행하는 설치과정이므로 자세한 설명은 생략한다.

HeidiSQL 설치 진행
HeidiSQL 설치 완료

  1. HeidiSQL 실행 시 한글 OS에서는 한글로 실행된다. 하단의 ‘신규’ 버튼을 클릭하자.

HeidiSQL 실행 및 신규 설정

  1. 좌측 패널의 세션 이름을 알기 쉽게 변경한다. 우측 패널의 암호는 우리가 위에서 MariaDB 서버를 만들 때 사용한 암호를 입력하면 된다. (위에서는 <YourStrong@Passw0rd>를 사용했었다.) 포트는 반드시 3307로 설정해야 한다.

HeidiSQL 실행 및 신규 설정

  • 주소 : 127.0.0.1
  • ID : root
  • PW : 위에서 설정한 root 암호 입력
  • Port : 3307

  1. 정상적으로 접속되면 데이터베이스를 선택한 후 데이터테이블을 조회해 보자. 아래와 같이 출력되면 정상이다.

GUI에서 Data Table 조회

  1. HeidiSQL 자세한 사용방법은 본 포스팅과 크게 관련이 없으므로 설명하지 않는다. 자세한 내용은 인터넷을 검색해서 사용하기를 권장한다.