Repolode
go-mysql-org

go-mysql-org/go-mysql

MySQLとMariaDBのネットワークプロトコルを扱う純粋なGoライブラリ。binlogレプリケーション、クライアント、フェイクサーバー、database/sqlドライバーを備えています。

スター
4,974
フォーク
1,097
未解決の Issue
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. 1

    Goプロジェクトにライブラリパッケージをインポートします

  2. 2

    プロジェクトのルートから同梱のサンプルアプリケーションをビルドします

    make build

収録されている特集

トピック

よくある質問

go-mysql とは?
MySQLとMariaDBのネットワークプロトコルを扱う純粋なGoライブラリ。binlogレプリケーション、クライアント、フェイクサーバー、database/sqlドライバーを備えています。 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 の数値は毎日更新されます。

関連プロジェクト