이제 .NET Core에 MySQL을 연결하는 방법을 알아보자.
1. MySqlConnector 설치
dotnet add package MySqlConnector
프로젝트 터미널에서 위의 명령어를 입력해 MySqlConnector를 설치해주자.
2. SQL 연결
MySQL의 일반적인 연결 문자열은 다음과 같다.
"Server=YOURSERVER;User ID=YOURUSERID;Password=YOURPASSWORD;Database=YOURDATABASE"
해당 문자열의 값을 데이터베이스에 적합한 설정으로 바꾸자.
appsettings.json에 해당 문자열을 등록해주면 된다.
{
....
"ConnectionStrings": {
"Default": "Server=YOURSERVER;User ID=YOURUSERID;Password=YOURPASSWORD;Database=YOURDATABASE"
}
}
3. MySQL 설치
그럼 연결하려면 MySQL이 설치되어야 할 것 같다.
일단, 터미널에서 아래 명령을 입력해보자.
mysql --version
버전이 출력된다면, 이미 깔려 있는것이다.
깔려있지 않다면 아래 링크를 들어가서 설치해주자.
MySQL :: Download MySQL Community Server
Select Version: 9.5.0 Innovation 8.4.7 LTS 8.0.44 Select Operating System: Select Operating System… Microsoft Windows Debian Linux Ubuntu Linux SUSE Linux Enterprise Server Red Hat Enterprise Linux / Oracle Linux Fedora Linux - Generic Oracle Solaris mac
dev.mysql.com
설치 방법은 인터넷에 여러 방법이 나와있고, 나름 쉽다.
[MySQL] MySQL 설치하기 (윈도우 / windows)
MySQLMySQL은 가장 많이 사용되는 데이터베이스 중 하나이다.무료이기에 간단히 설치해 바로 사용할 수 있다. 윈도우와 리눅스 등 다양한 운영체제에서 사용 가능해 확장성이 뛰어나다. 표준 SQL
code-angie.tistory.com
이 링크에 있는 데이터 베이스 만들기도 실행해주자.
MySql Workbench에 DB생성, 사용자생성하고 연동
1. MySql Workbench에서 DB생성하기 root관리자로 접속하기 디비생성아이콘을 클릭하고 DB명을 test_db로 지정(사용자 임의 지정) Charset을 UTF8로 지정 2. MySql Workbench에서 사용자 추가하기 사용자 이름 : bbs
edu-coding.tistory.com
다 됐다면 아까 추가했던 문자열을 실제 값으로 바꿔주자.
나는 Database이름은 sql_db, 유저이름은 root, 비밀번호는 root로 했다.
{
....
"ConnectionStrings": {
"Default": "Server=localhost;User ID=root;Password=root;Database=sql_db"
}
}
4. 서비스 구성
일단 MySqlConnector.DependencyInjection을 설치해주자.
dotnet add package MySqlConnector.DependencyInjection
using Microsoft.AspNetCore.Mvc;
using MySqlConnector; // MySqlConnector 추가
var builder = WebApplication.CreateBuilder(args);
// SQL 사용 선언
builder.Services.AddMySqlDataSource(builder.Configuration.GetConnectionString("Default")!);
var app = builder.Build();
// 라우팅 설정
app.MapGet("/serve", (IService service1, [FromServices] IService service2) =>
{
var id1 = service1.Serve();
var id2 = service2.Serve();
return Results.Ok(new { Message = "Service Called", id1, id2 });
});
app.Run();
5. 확인하기
DB MySQL WorkBench Tool을 이용한 Table 활용하는 방법
DB MySQL WorkBench Tool을 이용한 Table 활용하는 방법 -> sqlmember 테이블에서 column(member_id, member_name, member_addr)과 같이 생성을 하도록 합니다. -> 테이블에 데이터를 넣어주기 위해서 Slect Rows - Limit 1000을
pinetreeday.tistory.com
이 블로그를 통해서, 테이블의 생성과, 데이터 추가를 했다.
(다른 블로그를 참고해도 된다.)

그냥 sql_db라는 스키마를 생성한 뒤, sqlmember라는 테이블을 생성하고, member_id라는 필드를 넣었다.
이제 다시 터미널에서
dotnet add package MySql.Data
를 실행해주고, Program.cs를 수정해주자.
using MySql.Data.MySqlClient; // MySql.Data 추가
var builder = WebApplication.CreateBuilder(args);
// 연결 문자열 (아까 작성한 appsettings.json) 읽기
var connectionString = builder.Configuration.GetConnectionString("Default");
var app = builder.Build();
// 테스트용 DB 조회 엔드포인트
app.MapGet("/db-test", async () =>
{
//1. 연결 생성
await using var connection = new MySqlConnection(connectionString);
//2. 연결 열기
await connection.OpenAsync();
//3. 쿼리 준비 (테스트 용으로 한건만 가져오기)
const string sql = "SELECT member_id FROM sqlmember LIMIT 1;";
await using var command = new MySqlCommand(sql, connection);
//4. 실행 & 리더 가져오기
await using var reader = await command.ExecuteReaderAsync();
//5. 결과 읽기
if (await reader.ReadAsync())
{
var id = reader.GetString(0); //0번 칼럼 인덱스에서 읽기
// json으로 변환
return Results.Ok(new { Id = id });
}
// 데이터가 하나도 없다면
return Results.NotFound("No rows in table");
});
app.Run();
그리고, 에플리케이션을 실행한 후,
dotnet watch
해당 엔드포인트로 요청해보자.
###
GET {{host}}/db-test
HTTP/1.1 200 OK
Connection: close
Content-Type: application/json; charset=utf-8
Date: Thu, 04 Dec 2025 07:30:50 GMT
Server: Kestrel
Transfer-Encoding: chunked
{
"id": "test"
}
정상적으로 잘 받은걸 확인할 수 있다.
좀 복잡한데, 과정 자체가 숙달될 필요가 있어 보인다.
'Study > GameServer' 카테고리의 다른 글
| [ASP.NET Core] 10. Redis (0) | 2025.12.05 |
|---|---|
| [ASP.NET Core] 09. SQLKata (0) | 2025.12.05 |
| [ASP.NET Core] 07. API 서버간 통신 때 HttpClientFactory 사용하기 (0) | 2025.12.04 |
| [ASP.NET Core] 06. API 서버의 디렉토리 구성 예 (0) | 2025.12.04 |
| [ASP.NET Core] 05. 의존성 주입 방법의 라이프 사이클 (0) | 2025.12.04 |