기본 MySQL 명령 줄 배너와 프롬프트의 스크린샷. | |
| 개발자 | MySQL AB |
|---|---|
| 발표일 | 1995년 5월 23일 |
| 안정화 버전 | |
| 저장소 | |
| 프로그래밍 언어 | C, C++ |
| 운영 체제 | 크로스 플랫폼 |
| 플랫폼 | 윈도우, 리눅스, 솔라리스 등 |
| 언어 | 영어 |
| 종류 | 관계형 데이터베이스 관리 시스템 |
| 라이선스 | GPLv2 또는 독점 라이선스 |
| 웹사이트 | MySQL |
MySQL(마이에스큐엘, /maɪ
MySQL은 GNU 일반 공중 사용 허가서의 조건에 따른 자유-오픈 소스 소프트웨어이며, 다양한 사유 소프트웨어 라이선스로도 이용 가능하다. MySQL은 스웨덴 회사인 MySQL AB가 소유하고 후원했으나, 이 회사는 썬 마이크로시스템즈(현재의 오라클 (기업))에 인수되었다. 2010년 오라클이 썬을 인수했을 때, 비데니우스는 MariaDB를 만들기 위해 오픈 소스 MySQL 프로젝트를 포크했다.
MySQL은 사용자가 SQL을 사용하여 MySQL 데이터베이스와 직접 상호작용할 수 있게 해주는 독립형 클라이언트를 가지고 있지만, 관계형 데이터베이스 기능이 필요한 애플리케이션을 구현하기 위해 다른 프로그램과 함께 사용되는 경우가 더 많다. MySQL은 리눅스, 아파치, MySQL, 펄/PHP/파이썬의 약자인 LAMP 웹 애플리케이션 소프트웨어 스택(및 기타)의 구성 요소이다. MySQL은 드루팔, 줌라, PhpBB, 워드프레스를 포함한 많은 데이터베이스 기반 웹 애플리케이션에서 사용된다. MySQL은 또한 페이스북, 플리커, 미디어위키, 트위터, 및 유튜브를 포함한 많은 인기 웹사이트에서 사용된다.
MySQL은 C와 C++로 작성되었다. SQL 파서는 Yacc으로 작성되었지만, 자체적으로 제작한 어휘 분석기를 사용한다. MySQL은 AIX, BSDi, FreeBSD, HP-UX, ArcaOS, eComStation, IBM i, IRIX, 리눅스, macOS, 마이크로소프트 윈도우, NetBSD, 노벨 넷웨어, OpenBSD, 오픈솔라리스, OS/2 Warp, QNX, 오라클 솔라리스, 심비안, 썬OS, SCO 오픈서버, SCO 유닉스웨어, Sanos 및 Tru64 UNIX를 포함한 많은 시스템 플랫폼에서 작동한다. OpenVMS용 MySQL 포트도 존재한다.
MySQL 서버 소프트웨어 자체와 클라이언트 라이브러리는 이중 라이선스 방식을 사용한다. GPL 버전 2 또는 상용 라이선스로 제공된다.
지원은 공식 매뉴얼에서 얻을 수 있다. 또한 다양한 IRC 채널과 포럼에서 무료 지원을 받을 수 있다. 오라클은 MySQL 엔터프라이즈 제품을 통해 유료 지원을 제공하며, 이는 서비스 범위와 가격에 따라 차이가 있다. 또한 지원 및 서비스를 제공하는 다수의 제3자 조직이 존재한다.
MySQL은 긍정적인 평가를 받아왔으며, 리뷰어들은 "평균적인 사례에서 매우 우수한 성능을 발휘한다"는 점과 "개발자 인터페이스가 잘 갖춰져 있고, 웹사이트 등을 통한 실제 피드백뿐만 아니라 문서화가 매우 훌륭하다"는 점에 주목했다. 또한 "빠르고 안정적이며 진정한 멀티 사용자, 멀티 스레드 SQL 데이터베이스 서버"인 것으로 테스트되었다.

MySQL은 스웨덴인 데이비드 악스마르크와 알란 라르손, 그리고 핀인 미카엘 "몬티" 비데니우스가 설립한 스웨덴 회사 MySQL AB에 의해 만들어졌다. 비데니우스와 악스마르크에 의한 MySQL의 초기 개발은 1994년에 시작되었다. MySQL의 첫 번째 버전은 1995년 5월 23일에 등장했다. 처음에는 개발자들이 너무 느리고 유연하지 못하다고 생각한 저수준 언어 ISAM 기반의 mSQL을 대체하여 개인적인 용도로 만들어졌다. 그들은 mSQL과 동일한 API를 유지하면서 새로운 SQL 인터페이스를 만들었다. API를 mSQL 시스템과 일관되게 유지함으로써, 많은 개발자가 (사유 라이선스인) mSQL 대신 MySQL을 사용할 수 있었다.
MySQL 개발의 추가적인 이정표는 다음과 같다:

| 릴리스 | 정식 출시 | 최신 마이너 버전 | 최신 릴리스 날짜 | 지원 종료 |
|---|---|---|---|---|
| 5.1 LTS | 2008년 11월 14일 | 5.1.73 | 2013-12-03 | 2013년 12월 |
| 5.5 LTS | 2010년 12월 3일 | 5.5.62 | 2018-10-22 | 2018년 12월 |
| 5.6 LTS | 2013년 2월 5일 | 5.6.51 | 2021-01-20 | 2021년 2월 |
| 5.7 LTS | 2015년 10월 21일 | 5.7.44 | 2023-10-25 | 2023년 10월 |
| 8.0 LTS | 2018년 4월 19일 | 8.0.44 | 2025-10-21 | 2026년 4월 |
| 8.1 IR | 2023년 7월 18일 | 8.1.0 | 2023-07-18 | 2023년 10월 |
| 8.2 IR | 2023년 10월 25일 | 8.2.0 | 2023-10-25 | 2024년 1월 |
| 8.3 IR | 2024년 1월 16일 | 8.3.0 | 2024-01-16 | 2024년 4월 |
| 8.4 LTS | 2024년 4월 30일 | 8.4.6 | 2025-07-22 | 2032년 4월 |
| 9.0 IR | 2024년 7월 1일 | 9.0.1 | 2024-07-23 | 2024년 10월 |
| 9.1 IR | 2024년 10월 15일 | 9.1.0 | 2024-10-15 | 2025년 1월 |
| 9.2 IR | 2025년 1월 21일 | 9.2.0 | 2025-01-21 | 2025년 4월 |
| 9.3 IR | 2025년 4월 15일 | 9.3.0 | 2025-04-15 | 2025년 7월 |
| 9.4 IR | 2025년 7월 22일 | 9.4.0 | 2025-07-22 | 2025년 10월 |
| 9.5 IR | 2025년 10월 10일 | 9.5.0 | 2025-10-10 | 2026년 1월 |
범례: 오래된 버전 오래된 버전, 지원 중 최신 버전 최신 미리보기 버전 IR = 혁신 릴리스 (3개월마다) | ||||
버전 6에 대한 작업은 썬 마이크로시스템즈 인수 이후 중단되었다. MySQL 클러스터 제품은 버전 7을 사용한다. 다음 주요 버전 번호로 버전 8로 건너뛰기로 결정되었다.
2001년 6월 15일, NuSphere는 보스턴 미국 지방 법원에서 MySQL AB, TcX DataKonsult AB 및 원저자인 미카엘("몬티") 비데니우스와 데이비드 악스마르크를 "계약 위반, 제3자 계약 및 관계에 대한 불법적 간섭, 부정 경쟁" 혐의로 고소했다.
2002년, MySQL AB는 미국 메사추세츠 연방 지방 법원에 저작권 및 상표권 침해 혐의로 Progress NuSphere를 고소했다. NuSphere는 라이선스를 준수하지 않은 채 MySQL의 GPL 코드를 NuSphere Gemini 테이블과 연결하여 MySQL AB의 저작권을 위반했다는 혐의를 받았다. 2002년 2월 27일 파티 사리스 판사 앞에서 열린 예비 심리 이후, 양측은 화해 협상에 들어갔고 결국 합의했다. 심리 후 자유 소프트웨어 재단(FSF)은 "사리스 판사는 GNU GPL을 집행 가능하고 구속력 있는 라이선스로 간주한다는 점을 분명히 했다"고 언급했다.
2005년 10월, 오라클은 MySQL이 트랜잭션 및 외래 키와 같은 기능을 제공할 수 있게 해주는 제3자 InnoDB 저장 엔진을 개발한 핀란드 회사 Innobase OY를 인수했다. 인수 후 오라클은 보도자료를 통해 해당 회사의 소프트웨어를 MySQL AB에서 사용할 수 있게 하는 계약이 2006년경 갱신(및 재협상)될 예정이라고 언급했다. 2006년 4월 MySQL 사용자 컨퍼런스 기간 동안, MySQL AB는 MySQL AB와 Innobase OY가 라이선스 계약의 "다년" 연장에 합의했음을 확인하는 보도자료를 발표했다.
2006년 2월, 오라클은 다른 MySQL 저장 엔진의 기반이 되는 버클리 DB 제작사인 Sleepycat Software를 인수했다. 버클리 DB는 널리 사용되지 않았고, 2006년 10월 출시된 MySQL 5.1의 시험판인 5.1.12에서 (사용 부족으로 인해) 제외되었기 때문에 이는 거의 영향을 미치지 않았다.
2008년 1월, 썬 마이크로시스템즈는 MySQL AB를 10억 달러에 인수했다.
2009년 4월, 오라클은 당시 MySQL의 저작권과 상표권을 소유하고 있던 썬 마이크로시스템즈를 인수하기로 합의했다. 썬의 이사회는 만장일치로 거래를 승인했다. 또한 썬의 주주들과 미국 정부도 2009년 8월 20일에 이를 승인했다. 2009년 12월 14일, 오라클은 지난 4년 동안 해왔던 것처럼 MySQL을 계속 개선하겠다고 약속했다.
오라클로부터 MySQL을 보호하자는 "Save MySQL" 운동은 MySQL AB 창립자 중 한 명인 몬티 비데니우스에 의해 시작되었다. 5만 명 이상의 개발자와 사용자의 서명은 유럽 연합 집행위원회에 인수를 차단할 것을 촉구했다. 동시에 일부 자유 소프트웨어 오피니언 리더(Groklaw의 파멜라 존스, 얀 윌데보어, 합병 규제 절차에서 공동 대리인으로 활동한 카를로 피아나 포함)는 합병의 무조건적인 승인을 옹호했다. 유럽 연합 집행위원회와의 협상의 일환으로 오라클은 MySQL 서버가 최소 2015년까지 MySQL AB가 오랫동안 사용해 온 이중 라이선스 전략을 계속 사용하여 상용 버전과 GPL 버전을 모두 제공할 것이라고 약속했다. EU의 반독점 기구는 "합병 승인 조건으로 MySQL을 매각하도록 압박"해 왔다. 그러나 오라클의 요청에 따라 미국 법무부는 EU가 합병을 무조건 승인하도록 압력을 가했다. 유럽 연합 집행위원회는 결국 2010년 1월 21일 오라클의 MySQL AB 인수를 무조건 승인했다.
2010년 1월, 오라클의 MySQL AB 인수가 완료되기 전, 몬티 비데니우스는 GPL 전용 포크인 MariaDB를 시작했다. MariaDB는 MySQL 서버 5.5와 동일한 코드 기반을 바탕으로 하며, 오라클 제공 버전과의 호환성 유지를 목표로 한다.
MySQL은 두 가지 다른 에디션으로 제공된다. 오픈 소스 소프트웨어인 MySQL 커뮤니티 서버와 상용인 엔터프라이즈 서버가 그것이다. MySQL 엔터프라이즈 서버는 서버 플러그인으로 설치되는 일련의 전용 확장 기능으로 차별화되지만, 그 외에는 버전 번호 체계를 공유하고 동일한 코드 기반으로 구축된다.
MySQL 5.6에서 사용 가능한 주요 기능은 다음과 같다:
개발자들은 대략 2개월마다 MySQL 서버의 마이너 업데이트를 출시한다. 소스 코드는 MySQL 웹사이트나 MySQL의 깃허브 저장소에서 GPL 라이선스 하에 얻을 수 있다.
기본인 InnoDB 이외의 일부 저장 엔진을 사용할 때, MySQL은 외래 키 참조를 포함하여 구현된 일부 기능에 대해 완전한 SQL 표준을 준수하지 않는다. 체크 제약 조건(Check constraints)은 MySQL 버전 8.0.15 이전까지 모든 저장 엔진에서 구문 분석은 되지만 무시되었다.
MySQL 5.7까지 트리거는 동작/타이밍당 하나로 제한된다. 즉, 동일한 테이블에서 INSERT 작업 후와 INSERT 작업 전에 각각 최대 하나의 트리거만 정의할 수 있다. 뷰(View)에는 트리거를 정의할 수 없다.
MySQL 8.0.28 이전에는 UNIX_TIMESTAMP()와 같은 내장 함수가 2038년 1월 19일 03:14:07 UTC 이후에 0을 반환했다. 2017년에 이 문제를 해결하기 위한 시도가 제출되었으나, 2022년에 제공된 최종 해결책에는 사용되지 않았다.
MySQL은 소스 코드에서 수동으로 빌드하고 설치할 수 있지만, 특별한 맞춤 설정이 필요하지 않은 한 바이너리 패키지에서 설치하는 것이 더 일반적이다. 대부분의 리눅스 배포판에서는 패키지 관리 시스템을 통해 최소한의 노력으로 MySQL을 다운로드하고 설치할 수 있지만, 보안 및 최적화 설정을 조정하기 위해 추가 구성이 필요한 경우가 많다.

MySQL은 강력한 상용 데이터베이스에 대한 저가형 대안으로 시작했지만, 점차 고차원의 요구 사항도 지원하도록 진화했다. 여전히 소규모에서 중규모의 단일 서버 배포에서 가장 흔히 사용되며, LAMP 기반 웹 애플리케이션의 구성 요소 또는 독립형 데이터베이스 서버로 사용된다. MySQL의 매력 중 상당 부분은 PhpMyAdmin과 같은 오픈 소스 도구 생태계 덕분에 가능해진 상대적인 단순성과 사용 편의성에서 비롯된다. 중간 규모에서 MySQL은 기가바이트 단위의 메모리를 갖춘 다중 프로세서 서버와 같은 더 강력한 하드웨어에 배포함으로써 확장(scaling up)할 수 있다.
그러나 단일 서버에서 성능을 확장할 수 있는 범위에는 한계가 있으므로, 더 큰 규모에서는 성능과 안정성을 향상시키기 위해 다중 서버 MySQL 배포(scaling out)가 필요하다. 전형적인 고급 구성에는 데이터 쓰기 작업을 처리하고 모든 읽기 작업을 처리하는 여러 개의 복제본(replicas, 이전 명칭 슬레이브)으로 복제되는 강력한 소스 데이터베이스(source database, 이전 명칭 마스터 데이터베이스)가 포함될 수 있다. 소스 서버는 연결된 복제본에 binlog 이벤트를 계속 전송하여, 장애 발생 시 복제본이 새로운 소스로 승격될 수 있도록 함으로써 다운타임을 최소화한다. Memcached를 사용하여 데이터베이스 쿼리 결과를 메모리에 캐싱하거나, 데이터베이스를 샤드라고 불리는 더 작은 덩어리로 나누어 분산된 여러 서버 클러스터에 분산시킴으로써 성능을 더욱 향상시킬 수 있다.
오라클 MySQL은 MySQL 라우터와 MySQL 쉘을 포함한 도구 조합으로 고가용성 솔루션을 제공한다. 이들은 오픈 소스 도구인 Group Replication을 기반으로 한다.
MariaDB도 제품 측면에서 유사한 솔루션을 제공한다.
MySQL은 마이크로소프트 애저, 아마존 일래스틱 컴퓨트 클라우드 및 오라클 클라우드 인프라스트럭처와 같은 클라우드 컴퓨팅 플랫폼에서도 실행될 수 있다. 클라우드에서 MySQL을 배포하는 몇 가지 일반적인 모델은 다음과 같다:
이 구현에서 클라우드 사용자는 MySQL이 설치된 자신만의 머신 이미지를 업로드하거나, Amazon EC2에서 제공하는 것과 같이 MySQL이 최적화되어 설치된 기성 머신 이미지를 사용할 수 있다.
일부 클라우드 플랫폼은 MySQL을 "서비스"로서 제공한다. 이 구성에서 애플리케이션 소유자는 MySQL 데이터베이스를 직접 설치하고 유지 관리할 필요가 없다. 대신 데이터베이스 서비스 제공자가 데이터베이스 설치 및 유지 관리 책임을 지며, 애플리케이션 소유자는 사용량에 따라 비용을 지불한다. 주목할 만한 클라우드 기반 MySQL 서비스로는 아마존 관계형 데이터베이스 서비스, Oracle MySQL HeatWave Database Service, Azure Database for MySQL, Rackspace, HP Converged Cloud, 헤로쿠 및 Jelastic 등이 있다. 이 모델에서 데이터베이스 서비스 제공자는 호스트 및 데이터베이스 관리 책임을 진다.
그래픽 사용자 인터페이스(GUI)는 텍스트 기반 인터페이스나 명령줄 대신 그래픽 아이콘과 시각적 지표를 통해 사용자가 전자 장치 또는 프로그램과 상호작용할 수 있게 해주는 인터페이스 유형이다.
MySQL과 통합되어 사용자가 데이터베이스 구조와 데이터를 시각적으로 작업할 수 있게 해주는 제3자 상용 및 무료 그래픽 관리 애플리케이션(또는 "프론트엔드")이 제공된다.

MySQL 워크벤치는 MySQL을 위한 통합 환경이다. MySQL AB에서 개발했으며, 사용자가 MySQL 데이터베이스를 그래픽으로 관리하고 데이터베이스 구조를 시각적으로 설계할 수 있게 해준다.
MySQL 워크벤치는 세 가지 에디션으로 제공된다. MySQL 웹사이트에서 다운로드할 수 있는 일반적인 자유-오픈 소스 소프트웨어인 커뮤니티 에디션, 커뮤니티 에디션의 기능을 확장하고 개선한 상용 스탠다드 에디션, 그리고 MySQL Cluster CGE가 있다.
명령줄 인터페이스는 사용자가 텍스트 행(명령줄)을 연속적으로 입력하여 프로그램에 명령을 내리는 컴퓨터 프로그램과의 상호작용 수단이다. MySQL은 많은 명령줄 도구와 함께 제공되며, 그중 주된 인터페이스는 mysql 클라이언트이다.
MySQL Utilities는 일반적인 유지 관리 및 관리 작업을 수행하도록 설계된 유틸리티 세트이다. 원래 MySQL 워크벤치의 일부로 포함되었으나, 현재는 오라클에서 독립형 다운로드로 제공된다.
Percona Toolkit은 펄로 개발된 MySQL용 교차 플랫폼 툴킷이다. Percona Toolkit은 복제가 올바르게 작동하는지 증명하고, 손상된 데이터를 복구하며, 반복적인 작업을 자동화하고 서버 속도를 높이는 데 사용될 수 있다. Percona Toolkit은 CentOS 및 데비안과 같은 여러 리눅스 배포판에 포함되어 있으며, 페도라 및 우분투용 패키지도 제공된다. Percona Toolkit은 원래 Maatkit으로 개발되었으나, 2011년 말부터 Maatkit의 개발은 중단되었다.
MySQL 쉘은 MySQL 데이터베이스의 대화형 사용 및 관리를 위한 도구이다. 자바스크립트, 파이썬 또는 SQL 모드를 지원하며 관리 및 접근 목적으로 사용될 수 있다.
언어별 API를 갖춘 많은 프로그래밍 언어들이 MySQL 데이터베이스에 접근하기 위한 라이브러리를 포함하고 있다. 여기에는 .NET/CLI 언어를 위한 MySQL Connector/Net과 자바를 위한 JDBC 드라이버가 포함된다. MySQL은 mysqlx 이름공간에서 C++와 인터페이싱하기 위한 Connector/C++를 제공한다.
또한 MySQL Connector/ODBC라고 불리는 ODBC 인터페이스는 ASP나 어도비 콜드퓨전과 같이 ODBC 인터페이스를 지원하는 추가적인 프로그래밍 언어들이 MySQL 데이터베이스와 통신할 수 있게 해준다. URL 기반 쿼리 방법인 HTSQL도 MySQL 어댑터와 함께 제공되어, 구조화된 URL을 통해 웹 클라이언트와 MySQL 데이터베이스 간의 직접적인 상호작용을 가능하게 한다. 파이썬이나 Node.js와 같은 언어를 위한 다른 드라이버들도 존재한다.
다양한 MySQL 포크가 존재하며, 그중 일부는 다음과 같다:
MariaDB는 GNU GPL 하에 자유 소프트웨어로 남기 위해 고안된 MySQL 관계형 데이터베이스 관리 시스템의 커뮤니티 개발 포크이다. 이 포크는 오라클의 인수에 따른 우려로 인해 MySQL을 포크한 MySQL의 원개발자들이 주도하고 있다.
Percona에 의해 포크된 Percona Server for MySQL은 공식 MySQL 릴리스와 긴밀한 호환성을 유지하는 것을 목표로 한다. 또한 Percona Server for MySQL에는 InnoDB 저장 엔진의 Percona 포크인 XtraDB가 포함되어 있다.
Drizzle은 현재 없어진 MySQL DBMS의 6.0 개발 브랜치에서 포크된 자유 소프트웨어/오픈 소스 관계형 데이터베이스 관리 시스템(DBMS)이었다. MySQL과 마찬가지로 Drizzle은 클라이언트/서버 아키텍처를 가졌으며 SQL을 주요 명령 언어로 사용했다. Drizzle은 GNU 일반 공중 사용 허가서(GPL) 버전 2 및 3 하에 배포되었으며, 프로토콜 드라이버 및 복제 메시징을 포함한 일부 부분은 BSD 허가서 하에 배포되었다.
웹스케일SQL은 MySQL 5.6의 소프트웨어 브랜치로, 2014년 3월 27일 페이스북, 구글, 링크드인, 트위터가 공동 노력의 일환으로 발표했다. 이는 서버 팜에서 실행되는 대규모 복제 데이터베이스 구축과 같이 대규모 배포에 특화된 새로운 기능들을 MySQL에 추가하기 위한 중앙 집중식 개발 구조를 제공하기 위함이었다. 따라서 웹스케일SQL은 각 회사가 독자적인 MySQL 브랜치를 유지하는 데 들이는 노력을 통합하고 더 많은 개발자를 모으는 길을 열었다. 이러한 회사들의 노력을 결합하고 MySQL에 다양한 변경 사항과 새로운 기능을 통합함으로써, 웹스케일SQL은 대규모 환경에서의 MySQL 배포 지원을 목표로 했다. 프로젝트의 소스 코드는 GNU 일반 공중 사용 허가서 버전 2 하에 라이선스가 부여되었으며 깃허브에 호스팅되어 있다.
호주 회사 Open Query(나중에 Catalyst IT Australia에 인수됨)가 만든 OurDelta 배포판에는 두 가지 버전이 있었다. 하나는 MySQL 기반의 5.0이었고, 다른 하나는 MariaDB 기반의 5.1이었다. 여기에는 Open Query와 제레미 콜, 구글을 포함한 MySQL 커뮤니티의 다른 저명한 멤버들이 개발한 패치들이 포함되었다. 패치들이 MariaDB 메인라인에 통합되자 OurDelta의 목표는 달성되었고, OurDelta는 빌드 및 패키징 툴체인을 Monty Program(현재의 MariaDB Plc)으로 넘겼다.
The official way to pronounce “MySQL” is “My Ess Que Ell” (not “my sequel”)
MySQL is named after co-founder Monty Widenius's daughter, My.
The day the Sun purchase was announced, Widenius responded [...] — he forked MySQL, launching MariaDB [...]
WordPress, created in 2003, uses a variety of open-source programs and open standards, such as PHP, MySQL, JavaScript, HTML and CSS.
[...] Facebook's data is stored in MySQL database servers [...]
At Facebook we use MySQL to manage many petabytes of data, along with the InnoDB storage engine [...]
[...] at Flickr, MySQL is our hammer, and we use it for nearly everything. It's our federated data store, our key-value store, and our document store.
The MySQL and MariaDB database engines are the most commonly-used database backends for MediaWiki.
SQL: This includes MySQL, PostgreSQL and Vertica. MySQL/PosgreSQL are used where we need strong consistency [...]
Oracle provides its MySQL database server [...] under a dual license model [...] Oracle makes its MySQL database server [...] available under the GPLv2 [...]
MariaDB versions function as a "drop-in replacement" for the equivalent MySQL version, with some limitations.
MySQL Community Edition is the freely downloadable version [...]. It is available under the GPL license [...]