일반 SQL로 작성한 쿼리를 컴파일 시점에 검사하는 순수 Rust 비동기 SQL 툴킷으로, PostgreSQL, MySQL/MariaDB, SQLite를 지원합니다.
go-mysql-org/go-mysql
binlog 복제, 클라이언트, 가짜 서버, database/sql 드라이버를 제공하는 MySQL 및 MariaDB 네트워크 프로토콜용 순수 Go 라이브러리입니다.
- 스타
- 4,974
- 포크
- 1,097
- 열린 이슈
- 166
- 마지막 커밋
- 그저께
어떤 프로젝트인가요?
go-mysql은 MySQL 및 MariaDB 네트워크 프로토콜을 구현한 순수 Go 라이브러리입니다. Go 프로그램에서 MySQL 서버에 연결하거나, 복제본으로 동작해 binlog 스트림을 읽거나, 자체적인 MySQL 호환 서버 엔드포인트를 만들 수 있습니다.
replication 패키지는 파일 위치 또는 GTID를 기준으로 binlog 스트림의 이벤트를 처리하므로, 데이터베이스와 캐시 또는 검색 인덱스를 동기화하는 데 적합합니다. canal 패키지는 기존 데이터를 덤프한 다음 행 단위 변경 사항을 적용하는 기능을 제공하며, 프로젝트에는 Go로 작성된 mysqldump 유사 도구 같은 예제 명령어도 포함되어 있습니다.
복제 기능 외에도 연결 풀링과 SELECT 결과 스트리밍을 지원하는 간단한 클라이언트, MySQL 프록시를 만들기 위한 server 패키지, TLS 및 압축 등의 DSN 옵션을 설정할 수 있는 database/sql 드라이버를 제공합니다.
핵심 기능
- 01MySQL 및 MariaDB의 binlog 이벤트 스트림을 파일 위치 또는 GTID 기준으로 읽습니다.
- 02기존 데이터를 덤프한 뒤 행 변경 사항을 적용하는 증분 데이터 동기화 프레임워크(canal)를 제공합니다.
- 03연결 풀과 SELECT 결과 스트리밍을 지원하는 간단한 MySQL 클라이언트입니다.
- 04MySQL 호환 엔드포인트나 프록시를 만들 수 있는 server 패키지입니다.
- 05TLS, zlib/zstd 압축 및 타임아웃 옵션을 지원하는 database/sql 드라이버입니다.
활용 사례
- binlog 변경 사항을 읽어 MySQL 데이터를 Redis 또는 Elasticsearch와 동기화합니다.
- Go에서 테스트용 MySQL 프록시나 가짜 MySQL 서버를 만듭니다.
- mysqldump와 유사한 Go 백업 또는 내보내기 도구를 작성합니다.
- 표준 database/sql 인터페이스를 통해 Go 코드에서 MySQL을 사용합니다.
빠른 시작
- 1
Go 프로젝트에서 라이브러리 패키지를 가져옵니다
- 2
프로젝트 루트에서 포함된 예제 애플리케이션을 빌드합니다
make build
포함된 컬렉션
토픽
자주 묻는 질문
- go-mysql은(는) 무엇인가요?
- binlog 복제, 클라이언트, 가짜 서버, database/sql 드라이버를 제공하는 MySQL 및 MariaDB 네트워크 프로토콜용 순수 Go 라이브러리입니다. go-mysql은 MySQL 및 MariaDB 네트워크 프로토콜을 구현한 순수 Go 라이브러리입니다. Go 프로그램에서 MySQL 서버에 연결하거나, 복제본으로 동작해 binlog 스트림을 읽거나, 자체적인 MySQL 호환 서버 엔드포인트를 만들 수 있습니다.
- go-mysql은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- go-mysql은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- go-mysql은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. go-mysql의 마지막 커밋은 2026년 11월 6일입니다.
- go-mysql은(는) 어디에 사용할 수 있나요?
- binlog 변경 사항을 읽어 MySQL 데이터를 Redis 또는 Elasticsearch와 동기화합니다. Go에서 테스트용 MySQL 프록시나 가짜 MySQL 서버를 만듭니다. mysqldump와 유사한 Go 백업 또는 내보내기 도구를 작성합니다. 표준 database/sql 인터페이스를 통해 Go 코드에서 MySQL을 사용합니다.
- go-mysql는 어떻게 설치하나요?
- Go 프로젝트에서 라이브러리 패키지를 가져옵니다 프로젝트 루트에서 포함된 예제 애플리케이션을 빌드합니다: make build
- go-mysql은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/go-mysql-org/go-mysql
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
Alibaba Cloud의 MySQL 8.0.44 브랜치로, DuckDB 분석 스토리지 엔진과 HNSW 벡터 인덱스, 네이티브 플래시백 쿼리를 추가합니다.
Client/Server 프로토콜을 구현하는 순수 Python MySQL 드라이버로, DB API v2.0 Classic API와 Document Store용 X DevAPI를 제공합니다.
MySQL에서 포크된 널리 사용되는 오픈소스 관계형 SQL 데이터베이스로, MySQL 호환성에 네이티브 벡터 검색과 클러스터링 기능을 더했습니다.
데이터베이스 앞단에서 동작하며 복제 스트림을 통해 캐시된 쿼리 결과를 동기화하는 투명한 MySQL 및 Postgres 캐시입니다.
어느 노드에서나 쓰기를 처리하고 MySQL wire protocol을 지원하는 리더 없는 분산 SQLite 복제 서버입니다.