본문 바로가기
Engine/Unity

유니티 DataBase 연동하기(MariaDB)

by 뇌 속의 통 2025. 7. 28.

일전에는 csv 파일을 유니티와 연동하여 사용하는 방법에 대해 배웠습니다.

이번에는 이처럼 데이터 테이블을 관리해주는 DBMS와 연동하여 DB를 사용하는 방법에 대해 배워보도록 하겠습니다.

 

우선 어느 DBMS를 쓸 것인가에 대해 생각해보아야 합니다.

 

대표적인 DBMS에는  MySQL, Maria DB, SQLite, Oracle DB등이 있습니다.

이 중 무료로 상업적 이용이 가능하고 보다 편리한 Maria DB를 이용해서 연동해보도록 합시다.

 

DBMS를 유니티와 연동하기 위해선 몇가지 기본 환경설정이 필요합니다.

 

1. Maria DB Server 다운받기.

우리가 DBMS에 사용은 어떻게 할까?

A라는 프로세스가 있을 때 A에서 DBMS를 이용하기 위해선 DBMS의 서버에 접속해서 진행해야한다.

DBMS도 서버용 프로세스가 동작하고 있기 때문에 거기에 접속해서 데이터를 가져오거나 저장하는 것이다.

 

그래서 우리는 DBMS 서버를 다운받아야한다.

 

DBMS 서버는 아래에서 맞는 버전으로 설치하면 된다.

https://dlm.mariadb.com/browse/mariadb_server/

 

All Files - Community Server

 

dlm.mariadb.com

**설치 시 User ID와 Password를 설정하는데 이는 추후 서버 접속 시 필요하므로 반드시 기억해두도록 하자.

 

 

2. Maria DB 라이브러리 다운받기.(MySql.Data.dll 파일)

서버에 접속해서 다양한 기능들을 사용하기 위해선 해당 기능들이 정의된 라이브러리 파일이 필요하다.

 

아래에서 버전에 맞는 dll을 받으면 된다.

Maria DB는 MySql의 개발자가 나와서 만든 별도의 Fork 버전이라 MySql의 dll을 같이 사용한다.

https://downloads.mysql.com/archives/c-net/

 

MySQL :: Download MySQL Connector/NET (Archived Versions)

Please note that these are old versions. New releases will have recent bug fixes and features! To download the latest release of MySQL Connector/NET, please visit MySQL Downloads. MySQL open source software is provided under the GPL License.

downloads.mysql.com

 

3. 설치가 모두 완료되면 우선 Maria DB가 정상작동하는지 확인해야한다.

Maria DB를 보기 위해서 별도의 GUI 툴을 설치해서 보도록한다.

 

DBMS용 GUI 툴은 몇개 있는데 우리는 HeidiSQL을 쓰도록 하자.

아래 링크에서 다운받으면 된다.

https://www.heidisql.com/download.php

 

설치가 완료되면 HeidiSQL을 실행한다.

 

 

지금 이미 DataBase가 생성되어 있지만 처음 설치한 사람들은 없을 것이다.

신규를 눌러 생성하고 좌측의 네트워크 설정을 이미지와 같이 맞추도록 한다.

 

외부에서 실행되지 않고 내부에서 돌릴것이므로 ip는 루프백 주소인 127.0.0.1을 기입. 사용자 명과 암호를 넣어주도록한다.

그 후 열기를 누르면 아래와 같이 창이 열릴 것이다.

 

뭐가 이것저것 많아보이지만 단순하게 생각하면 된다.

여기서 우리는 표를 만들면 되는 것이다.

 

Data Base를 생성하고 그 안에 Table을 생성하면 비어있는 표가 하나 생기는 것이다.

DBMS를 이용하여 데이터를 만들고 저장하는 것은 추후 데이터베이스에서 다루도록 하겠다.

 

임의의 표가 하나 있다고 가정하고 이제 이 표를 유니티에서 불러와서 사용해보도록 하자.

 

4. 유니티에서 DBMS를 통해 데이터 가져오기

우선 앞서 다운받았던 dll 파일을 내가 사용할 프로젝트의 플러그인 폴더 안에 넣도록 한다.

 

이제 스크립트를 하나 만들어보도록 한다.

using System.Collections;
using System.Collections.Generic;
using MySql.Data.MySqlClient;
using System.Data;
using UnityEngine;
using System;
using System.IO;

public class DataBaseManager : MonoBehaviour
{
    private MySqlConnection connection;

    private void Start()
    {
        string server = "127.0.0.1";
        string database = "test";
        string user = "userID";
        string password = "password";

        string connStr =
            $"Server={server}; Database={database}; User ID={user}; Password={password}";
        connection = new MySqlConnection(connStr);

        try
        {
            connection.Open();
            string query = "SELECT * FROM testtable_2";
            MySqlCommand cmd = new MySqlCommand(query, connection);
            MySqlDataReader reader = cmd.ExecuteReader();

            while (reader.Read())
            {
                string name = reader["Name"].ToString();
                int age = Convert.ToInt32(reader["Age"]);
                string gender = reader["Gender"].ToString();

                Debug.Log($"이름: {name}, 나이: {age}, 성별: {gender}");
            }

            reader.Close();
        }
        catch (Exception ex)
        {
            Debug.LogError("DB 연결 오류: " + ex.Message);

        }
        finally 
        {
            if (connection.State == ConnectionState.Open)
                connection.Close();
        }
        
    }
}

 

 

접속할 서버, Database, ID, Password를 Json 형태로 묶어서 MySqlConnection 클래스의 open 함수로 연결을 시도합니다.

try-catch 문으로 발생할 오류에 대한 예외처리를 하고, 연결이 성공적으로 된다면 DBMS의 Data를 한줄 씩 읽어서 출력합니다.

 

마지막으로 출력이 끝나면 finally 구문을 통해 닫도록 합니다.

finally는 try-catch문에서 오류가 나든 연결이 되든 끝나고 나면 반드시 한번 호출되는 키워드입니다.

'Engine > Unity' 카테고리의 다른 글

Sprite Shape을 이용하여 땅 만들기(Unity 2D)  (2) 2025.07.18
Unity에서 csv 파일 읽어오기(엑셀, 메모장)  (2) 2025.07.08
Unity에서 JSON 사용하기  (1) 2025.07.07
Unity Coroutine  (0) 2025.02.20
Unity Drag & Drop  (0) 2025.02.19