MySQL
MySQL(마이에스큐엘)은 오라클이 개발하는 오픈소스 관계형 데이터베이스예요. 웹사이트·쇼핑몰·워드프레스에서 널리 쓰이고, 형제 격인 MariaDB 와 명령이 거의 같아요.
목차 보기
MySQL(마이에스큐엘)은 웹사이트와 앱의 데이터를 표로 저장하는 관계형 데이터베이스 프로그램이에요. 동네 가게 장부를 회원·주문·상품 표로 나눠 정리해 주는 관리인이라고 보면 돼요.
글 서순명(솔리드그루 이사 · 퓨쳐인프라 운영) · 2026-10-29 작성 · 예시는 2026-10-29 Windows 11 · MariaDB 11.8.9(MySQL 호환) 컨테이너에서 직접 실행
3줄 요약
- MySQL 은 오라클(Oracle)이 개발해요. 무료로 쓰는 GPL 판과 돈 내는 상용판이 있어요.
- MariaDB 는 MySQL 을 처음 만든 개발자들이 갈라져 나와 만든 형제 DB 예요. 명령이 거의 같아요.
- 워드프레스를 비롯한 많은 웹 프로그램이 MySQL 이나 MariaDB 위에서 돌아가요.
MySQL 은 누가 만들었고, 어떻게 동작하나요?
이름의 "My"는 공동 창업자 몬티 와이드니어스(Monty Widenius)의 딸 이름이에요. 뒤의 "SQL"은 데이터베이스에 일을 시키는 언어 SQL 에서 왔어요(MySQL 공식 문서).
지금은 오라클이 개발하고 배포해요. 공식 문서는 MySQL 이 데이터를 한 창고에 몰아넣지 않고 여러 표에 나눠 담는다고 설명해요. 앱이 SQL 로 "이 회원 주문 보여 줘"라고 보내면, MySQL 서버가 표를 뒤져 답을 돌려줘요.
MariaDB 는 뭐고, 왜 둘로 나뉘었어요?
MySQL 이 오라클 손에 넘어간 뒤, 처음 만든 개발자들이 MariaDB 를 따로 시작했어요. MariaDB 재단은 MySQL 을 그대로 바꿔 끼울 수 있게 설계했고, 앞으로도 GPLv2 오픈소스로 남는다고 밝혀요(MariaDB 재단).
그래서 기본 SQL·접속 방식·도구가 거의 같아요. 다만 버전이 올라가면서 조금씩 갈라져, 새 기능 일부는 한쪽에만 있어요. 이미 쓰는 서비스가 정해 둔 쪽을 따르면 돼요.
| 구분 | MySQL | MariaDB | PostgreSQL |
|---|---|---|---|
| 만드는 곳 | 오라클 | MariaDB 재단·회사(원 개발자들) | 전 세계 개발자 모임 |
| 라이선스 | GPL 무료판 + 상용판 | GPLv2 | PostgreSQL License |
| 서로 바꿔 쓰기 | 기본 SQL·접속 방식이 거의 같아요 | SQL 은 비슷, 세부 문법이 달라요 | |
| 잘 맞는 곳 | 웹사이트·쇼핑몰·워드프레스 | 규칙이 많은 서비스, JSON 함께 쓰기 | |
MySQL 은 어디에 쓰여요?
대표적인 곳이 워드프레스예요. 워드프레스 공식 요구사항은 MySQL 8.0 이상 또는 MariaDB 10.11 이상을 권해요(2026-10-29 wordpress.org 확인). 블로그·쇼핑몰·게시판처럼 글과 회원을 쌓는 웹서비스에서 오래 쓰여 왔어요.
바이브코딩으로 만든 앱도 마찬가지예요. 로그인·주문 기록을 남기려면 이런 DB 가 하나 있어야 해요. 어떤 DB 를 고를지 고민이라면 데이터베이스 뜻에 종류별 비교가 있어요.
직접 해 보면 어떻게 나오나요?
2026-10-29 Windows 11 PC 에서 돌린 결과예요. 먼저 밝혀 둘 점이 있어요. 이 PC 에 있던 건 MySQL 이 아니라 MariaDB 11.8.9 이미지였어요. 그래서 MySQL 명령을 그대로 알아듣는 MariaDB 컨테이너로 실행했어요. 아래 SQL 은 MySQL 에서도 같은 뜻으로 통하지만, 출력 모양은 조금 다를 수 있어요.
컨테이너를 켜고 첫 명령을 받기까지 7,711ms 걸렸어요(이미지를 처음 띄운 회차는 13,031ms).
$ cat members.sql (일부)
CREATE DATABASE shop DEFAULT CHARACTER SET utf8mb4;
CREATE TABLE members (id INT AUTO_INCREMENT PRIMARY KEY, email VARCHAR(100) UNIQUE NOT NULL, name VARCHAR(30), joined DATE);
INSERT INTO members (email, name, joined) VALUES ('kim@example.com', '김민지', '2026-10-01'), ('lee@example.com', '이준호', '2026-10-15');
SELECT id, name, joined FROM members ORDER BY joined DESC;
INSERT INTO members (email, name) VALUES ('kim@example.com', '김민지2');
SELECT COUNT(*) AS 회원수 FROM members;
$ mariadb -uroot -p --force < members.sql (mysql 명령과 같은 문법, 오류가 나도 계속) — 결과 일부
| 11.8.9-MariaDB-ubu2404 |
+----+-----------+------------+
| id | name | joined |
+----+-----------+------------+
| 2 | 이준호 | 2026-10-15 |
| 1 | 김민지 | 2026-10-01 |
+----+-----------+------------+
ERROR 1062 (23000) at line 7: Duplicate entry 'kim@example.com' for key 'email'
| 회원수 |
| 2 |
| character_set_database | utf8mb4 |
- 번호(id)는 AUTO_INCREMENT 덕분에 1, 2 로 저절로 매겨졌어요.
- 같은 이메일로 다시 넣자 ERROR 1062(중복)로 거절됐어요. 회원 수는 그대로 2명이에요.
- DB 문자셋이 utf8mb4 로 잡혀 한글 이름이 깨지지 않고 저장됐어요.
자주 하는 오해와 주의할 점
- "utf8 이면 한글·이모지 다 된다" — MySQL 의 utf8 은 글자당 3바이트까지만 담는 utf8mb3 의 다른 이름이에요. 이모지까지 담으려면 4바이트짜리 utf8mb4 를 써요(MySQL 문서).
- "중복 검사는 앱 코드에서 하면 된다" — 두 사람이 동시에 가입하면 코드 검사를 둘 다 통과할 수 있어요. 위 실습처럼 DB 에 UNIQUE 를 걸어야 끝까지 막혀요.
- "MySQL 은 무조건 무료" — GPL 판은 무료예요. 다만 오라클은 MySQL 을 프로그램 안에 넣어 파는 경우를 위해 상용판을 따로 팔아요. 판매용 프로그램에 MySQL 을 함께 넣을 계획이라면 라이선스 조건을 먼저 확인하세요.
퓨쳐인프라에서는 어떻게 쓰나요?
퓨쳐인프라 앱 호스팅에서는 앱에 붙이는 데이터베이스로 MySQL 과 MariaDB 를 둘 다 고를 수 있어요(PostgreSQL·Redis 도 있어요). DB 를 붙이면 월 2,200원이 더해져 앱 포함 월 7,700원이에요(부가세 포함, 분 단위 계산).
DB 비밀번호는 서버가 만들어 보관하고, 접속 정보는 앱 환경변수로 자동으로 들어가요. 직접 비밀번호를 만들어 코드에 적지 않아도 돼요.
자주 묻는 질문
MySQL 은 어떻게 읽어요?
공식적으로는 '마이-에스큐엘'로 읽어요. 우리나라에서는 '마이에스큐엘'이 흔하고, '마이시퀄'이라고 부르는 사람도 있어요. 뜻은 같아요.
MySQL 에서 MariaDB 로 옮기면 앱을 고쳐야 해요?
기본 SQL 과 접속 방식이 거의 같아서 대부분은 접속 주소만 바꾸면 돌아가요. 다만 버전이 올라가며 일부 기능이 달라졌으니, 옮기기 전에 개발용으로 한 번 돌려 보고 확인하는 게 안전해요.
ERROR 1062 Duplicate entry 는 무슨 오류예요?
UNIQUE(중복 금지)로 지정한 칸에 이미 있는 값을 또 넣으려 할 때 나는 오류예요. 같은 이메일로 두 번 가입하는 상황이 대표적이에요. 앱에서는 이 오류를 받아 '이미 가입된 이메일이에요' 같은 안내로 바꿔 보여 주면 돼요.
MySQL 을 엑셀처럼 화면으로 볼 수는 없어요?
MySQL Workbench 나 DBeaver 처럼 화면으로 다루는 프로그램을 쓰면 표를 화면에서 보고 고칠 수 있어요. 다만 운영 중인 DB 를 화면에서 직접 고치면 되돌리기 어려우니, 고치기 전에 백업을 받아 두세요.
관련 용어
- SQL — MySQL 에 일을 시키는 언어
- PostgreSQL — MySQL 과 자주 비교되는 오픈소스 DB
- 데이터베이스 — DB 종류와 고르는 법
- MongoDB — 표 대신 문서로 담는 NoSQL DB
- 워드프레스 호스팅 — MySQL 을 쓰는 대표 웹 프로그램 올리기
- 백엔드 — MySQL 에 SQL 을 보내는 서버 쪽 코드
- 작성: 서순명(솔리드그루 이사 · 퓨쳐인프라 — 국내 IDC 에서 클라우드 서버·앱 호스팅·AI API 를 운영) · 작성일 2026-10-29
- 운영사: 솔리드그루 · 사업자등록번호 875-44-00335 · 서울특별시 구로구 디지털로29길 38, 7층 707호 · 전화 02-6933-6229 · support@futureinfra.ai · 고객센터 · 이용약관
- 한계: 실행 결과는 2026-10-29 Windows 11 PC 한 대에서 MySQL 이 아닌 MariaDB 11.8.9 컨테이너로 돌린 값이에요. SQL 은 MySQL 과 같은 뜻으로 통하지만 출력 모양·오류 문구는 조금 다를 수 있어요. 워드프레스 요구사항은 같은 날 wordpress.org 기준이에요.
- 이해관계: 퓨쳐인프라(솔리드그루) 블로그예요. 글 안에 자사 앱 호스팅·데이터베이스 추가 요금 안내가 있어요.
연관 서비스
많이 본 글
-
블로그
무료 도메인 사이트 추천 2026 — 내도메인.한국·DuckDNS 발급 방법
내도메인.한국·DuckDNS 처럼 계속 무료인 주소 10곳을 11월 3일 서울에서 다시 재고(6곳 6ms 안), 발급 순서·구글·네이버 무료 주소·'첫해 무료'의 2년째 값까지 정리했어요. -
블로그
도메인 구매 사이트 추천 2026 — 가비아·후이즈 등 15곳 갱신·이전비 비교
같은 .co.kr 도 등록업체 15곳의 3년 값이 3.8만~8.6만 원이에요(11월 3일 KRNIC 표). 갱신가·이전비·해외 업체 조건, 11월 인상 뒤 가비아 실제 화면, 구매처 확인과 기관이전까지 정리했어요. -
블로그
클로드 MCP·Gemini MCP 연동 방법 2026, MCP 서버 9곳
클로드 MCP(데스크톱·Claude Code)와 Gemini MCP 연동(Gemini CLI·안티그래비티·Gemini 앱·API) 등 9곳의 MCP 서버 연결법을 공식 문서로 정리했어요. 원격 57ms 실측과 오류 해결까지. -
블로그
Gemini 3.9 Flash 나왔나요? 지금 최신은 3.8 Flash — 3.7과 직접 잰 속도·비용
2026년 9월 22일 기준 Gemini 3.9 Flash는 미출시입니다. 최신 3.8 Flash의 사양·가격(2027년 2배 인상)과, 3.7 Flash와 같은 과제로 직접 잰 속도·비용·JSON 형식 준수 차이를 정리했습니다. -
블로그
서버비 한 달 얼마? 방문자 10만 명도 월 3만 2천 원(2026 계산)
월 방문자 1천·1만 명은 1만 4천 원, 10만 명은 3만 2천 원이에요. 요금제별 트래픽 기본 제공량까지 넣어 다시 계산하고 AWS·카페24·가비아·네이버클라우드 값과 숨은 비용을 비교했어요(2026-10-26 확인).
댓글 0
로그인하면 댓글을 남길 수 있습니다.