본문 바로가기
공부방/DataBase

마리아DB(MariaDB) 데이터베이스 생성

by SmartCow 2025. 4. 13.

간만에 일하는데 데이터베이스까지 생성하는걸 해보네.. Mysql이랑 다를게 없겠지만 혹시 모르니 적어놔야함

대충 만들면 되것지~ 하면서 생성을 하려는데 원체 오래전에 생성해봤어서(대부분 애들한테 시켜서...;;) 생성하는게 헷갈리더라는.. 명령어도 기억이 안나서 주섬주섬 찾아보고..

마리아DB에서 데이터베이스 생성 기본

새로운 데이터베이스(Database)를 생성하려면 먼저 루트 또는 권한이 있는 사용자로 로그인해야 SQL 문으로 새 데이터베이스를 만들 수 있다.

CREATE DATABASE testdb;

'testdb'라는 이름의 데이터베이스가 생성됨

문자셋과 콜레이션 설정

데이터베이스를 생성할 때 문자셋(Character Set)과 콜레이션(Collation)을 지정하는 것은 매우 중요하다.
특히 다국어를 지원하거나 정렬 기준이 중요한 서비스일 경우에는 훨씬 중요

옵션 설명
CHARACTER SET utf8mb4 가장 권장되는 다국어 문자셋
COLLATE utf8mb4_general_ci 대소문자 구분 없는 일반 정렬

적용 예시

CREATE DATABASE testdb
  CHARACTER SET utf8mb4
  COLLATE utf8mb4_general_ci;

사용자 계정 및 권한 설정

데이터베이스를 만들었으니 이제 접근할 사용자와 권한을 지정

  • 사용자 생성: CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';
  • 권한 부여: GRANT ALL PRIVILEGES ON testdb.* TO 'myuser'@'localhost';
  • 변경 사항 적용: FLUSH PRIVILEGES;

명령줄로 DB 생성

실제 터미널 환경에서 DB를 만드는 명령을 순서대로 입력해보자(루트 계정으로 접속해서 데이터베이스와 사용자, 권한을 한 번에 구성하는 예)

$ mysql -u root -p

> CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
> CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';
> GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost';
> FLUSH PRIVILEGES;

GUI 툴로 DB 만드는 방법

명령어가 익숙하지 않거나 시각적으로 관리하고 싶다면 HeidiSQL, DBeaver, phpMyAdmin 같은 GUI 툴을 활용할 수 있다.

툴 이름 특징
HeidiSQL 간단한 인터페이스, 윈도우에 최적화
DBeaver 다양한 DB 관리, 크로스플랫폼 지원
phpMyAdmin 웹 기반 인터페이스, 설치형 관리툴

DB 생성 후 체크리스트

데이터베이스를 만든 뒤, 실수로 빠뜨리는 설정들이 꽤 많으니 다음 항목들 정도는 항상 확인해야함

  • 문자셋/콜레이션이 올바르게 적용됐는가?
  • 접근 권한이 정확한지 확인했는가?
  • 보안상 사용자에게 최소 권한만 줬는가?
  • 백업 스크립트는 준비되어 있는가?
마리아DB와 MySQL의 DB 생성 방법 차이점

기본 SQL 명령어는 동일하지만, 세부 설정이나 버전에 따라 약간의 차이는 존재할 수 있다.

utf8mb4 설정의 중요성

이모지와 다양한 언어를 지원하기 위해 추천. 특히 웹서비스에서는 utf8mb4가 표준처럼 사용되는 중

DB 이름에 대문자나 특수문자 사용해도 되나

가능하긴 하지만 추천되지 않는다. 운영체제나 툴 호환성을 고려해 소문자와 언더스코어 조합이 가장 안전

같은 이름의 DB를 다시 만들 수 있나?

기존 DB가 존재할 경우 에러가 발생하지만 삭제 후 다시 생성하거나 IF NOT EXISTS 옵션을 사용하면 있는지 확인하고 없을 경우에만 생성됨

MariaDB 버전에 따라 생성 방법이 다른가?

기본 명령은 동일하지만, 일부 고급 옵션(예: 인코딩 디폴트값 등)은 버전에 따라 차이가 있을 수 있다.