Awesome mysql
mysqlを扱う資料や関連プロジェクトをまとめたAwesomeリストです。
目次
分析
パフォーマンス、構造、データ分析ツール
- Anemometer - Box SQLスロークエリモニター。
- innodb-ruby - RubyによるInnoDBファイル形式のパーサー。
- innotop - 多くの機能と柔軟性を持つMySQL向けtopクローン。
- MySQL Explain Analyzer -
EXPLAIN FORMAT=JSON出力のWebベース分析器。コメント、スケーラビリティ分析、保存済みサンプルへのパーマリンクを提供する。 - mysql-statsd - MySQLから情報を収集し、StatsD経由でGraphiteへ送信するPythonデーモン。
- MySQLTuner-perl - MySQLインストールをすばやくレビューし、性能・安定性を高める調整を行えるスクリプト。
- Prometheus/mysqld_exporter - リアルタイム監視・アラート向け時系列データベース。
- pstop - performance_schemaから情報を収集、集約、表示するMySQL向けtop風プログラム。
- ReliaDB EXPLAIN Analyzer - 問題検出、インデックス推奨、クエリー書き換えを備えたブラウザベースのMySQL・MariaDB EXPLAIN可視化ツール。100%クライアントサイド。
- Wireshark - MySQLプロトコルをデコードできるプロトコルアナライザー。
- Dolphie - MySQL/MariaDB・ProxySQLをリアルタイム分析するモダンなターミナルツール。
- sql-tap - リアルタイムSQLトラフィックビューア。
バックアップ
バックアップ/復元/リカバリツール
- Databasus - 外部ストレージ(ローカル、S3、FTP、Google Driveなど)、通知(webhook、Discord、Slackなど)、チーム管理を備えた、Web UI経由のスケジュール済みMySQLバックアップツール。
- Dumpling - GoLangで書かれたMySQL/TiDB向け論理・並列バックアップ/ダンプツール。csv形式出力をサポートし、ライブラリとして統合できる。
- MyDumper - MySQL向け論理・並列バックアップ/ダンプツール。
- Percona Xtrabackup - バックアップ中にデータベースをロックしない、MySQLベースサーバー向けオープンソースのホットバックアップユーティリティ。
- Portabase - 分散実行・集中オーケストレーションを備えた、MySQLバックアップ・復元向けエージェントベースプラットフォーム。
ベンチマーク
サーバーへ負荷をかけるツール
- HammerDB - MySQL/MariaDBと、その他のオープンソース・商用データベース向けオープンソースデータベースベンチマーク。
- go-tpc - MySQL向けTPCC・TPCHベンチマークのgolang移植版。
- iibench-mysql - MySQL/Percona/MariaDB向けIndex Insertion BenchmarkのJavaベース版。
- Sysbench - モジュール式、クロスプラットフォーム、マルチスレッド対応のベンチマークツール。
- TPCC-MySQL(アーカイブ済み) - MySQL向け人気のTPCCベンチマークの移植版。
Binlogレプリケーション
- DM - MySQL/MariaDBからTiDBへのデータ移行とシャードテーブルのマージをサポートする高可用性データ移行プラットフォーム。
- Kingbus - Raft上に構築された分散MySQL binlogストレージシステム。
- mysql-ripple(アーカイブ済み) - MySQLレプリケーションで仲介役を務められるサーバーRipple。
ChatOps
チャットルームと統合するスクリプト
設定
MySQLサンプル設定とアドバイザー
- mysql-compatibility-config - MySQL設定を、より新しい(または古い)MySQLリリースに近い挙動にする。
コネクター
多様なプログラミング言語向けMySQLコネクター
- ballerinax/mysql - MySQL向け公式Ballerinaコネクター。
- DBD::MariaDB - Perl5 Database Interface向けMariaDB・MySQLドライバー。
- DBD::mysql - Perl5 Database Interface向けMySQLドライバー。
- go-sql-driver - Go(golang)のdatabase/sqlパッケージ向け軽量・高速MySQLドライバー。
- libAttachSQL - libAttachSQLは、MySQLサーバー向けの軽量・ノンブロッキングC API。
- MariaDB Connector/J - Javaアプリケーション向けLGPLライセンスのMariaDBクライアントライブラリ。
- mex-mariadb - GNU Octave・Matlab向けMITライセンスのMariaDB/MySQLクライアントライブラリ。
- MySQL C API - MySQL向け公式Cドライバー。
- MySQL Connector/C++ - MySQL向け公式C/C++ドライバー。
- MySQL Connector/J - Javaプラットフォーム・開発向け標準化データベースドライバー。
- MySQL Connector/NET - .Netプラットフォーム・開発向け標準化データベースドライバー。
- MySQL Connector/Node.js - MySQL向け公式Node.jsドライバー。
- MySQL Connector/Python - Pythonプラットフォーム・開発向け標準化データベースドライバー。
- mysqlclient-python - Python向けMySQLデータベースコネクター。
- node-mysql - MySQLプロトコルを実装する純粋なNodejs JavaScriptクライアント。
- PHP mysqlnd - PHP向けMySQLネイティブドライバー。
- PyMySQL - Python向けMySQLデータベースコネクター。
- Ruby Mysql2 gem - Ruby・Railsプロジェクト向けMySQLドライバー。
- MyZql - ネイティブZigによるMySQL・MariaDBドライバー。
- wtx - Rustで書かれたMySQL/MariaDB/Percona向けクライアント。
デプロイ
MySQLデプロイツール
- MariaDB4j - インストールや外部依存なしでMariaDBを実行するJavaランチャー。
開発
MySQL関連開発を支援するツール
- Flywaydb - データベースマイグレーション。すべてのインスタンスにわたり、データベーススキーマを簡単・確実に進化させる。
- dbsafe - MySQL DDL/DML操作の実行前安全性分析。
- Liquibase - データベース向けソース管理。
- Shift - MySQLデータベースでスキーママイグレーションを実行する助けとなるアプリケーション。
- Skeema - シャーディング・外部オンラインスキーマ変更ツールをサポートする、MySQL・MariaDB向け宣言的な純粋SQLスキーマ管理システム。
- SQLE - SQLEはDBAまたは開発者向けSQL監査プラットフォーム。
- Test database - アプリケーション・サーバーのテストに使う、統合テストスイート付きサンプルMySQLデータベース。
- cover_me - mysqlストアドプロシージャ・関数向けコードカバレッジツール。
GUI
GUIフロントエンドとアプリケーション
- Adminer - 単一PHPファイルによるデータベース管理。
- DBeaver - クロスプラットフォームのSQL・NoSQLデータベースクライアント。
- StackRender - MySQL向け無料・オープンソースのデータベーススキーマ設計・SQLマイグレーションジェネレーター。
- HeidiSQL - Windows向けMySQL GUIフロントエンド。
- ILLA Cloud - Mysqlと統合され、Mysql用GUIとして使えるローコード内部ツールビルダー。
- LibreDB Studio - データベースの隣にコンテナまたはHelmチャートとしてデプロイする、MySQLおよび他9エンジン向けブラウザベースSQL IDE。
- mycli - 自動補完・構文ハイライトを備えたMySQL向けターミナルクライアント。
- MySQL Shell - 対話型JavaScript、Python、SQLインターフェースで、MySQL ServerとMySQL InnoDB cluster(AdminAPI)の開発・管理を支援するMySQL向け高度なクライアント・コードエディター。
- MySQL Workbench - DBA・開発者へ、データベース設計・モデリング、SQL開発、データベース管理の統合ツール環境を提供する。
- Ocelot GUI - デバッガーを含むMySQLまたはMariaDB向けGUIクライアント。
- OmniDB: Web tool for database management
- Percona Monitoring and Management - MySQL性能を管理・監視するオープンソースプラットフォーム。
- phpMyAdmin - Web経由でMySQLの管理を扱うことを目的とした、PHPで書かれた自由ソフトウェアツール。
- pspg - 表形式データの可視化・ナビゲーションを強化するページャーを提供する。もともとはPostgreSQL向けに実装されたが、MySQLもサポートする。
- Sequel Ace - MySQLデータベースを扱うMac向けデータベース管理アプリケーション。
- TablePro - インライン編集、SSHトンネリング、AIアシスタントを備えた、MySQL・その他多数のデータベース向けネイティブmacOSクライアント。無料・オープンソース。
- SQLyog Community edition - SQLyog Community edition。Windows向けで、Mac・Linuxではwine上で正常に動作する。
- squix - クエリー管理と対話型結果を備えるSQLコマンドラインクライアント。
- WebDB – オープンソースで効率的なデータベースIDE。容易なサーバー接続、モダンなERD、知的データジェネレーター、AIアシスタント、NoSQL構造マネージャー、タイムマシン、強力なクエリーエディターを備える。
HA
高可用性ソリューション
- Galera Cluster - 同期レプリケーションに基づく真のマルチマスタークラスタ。
- mha4mysql-node と mha4mysql-manager(いずれも保守終了) - MySQL向けMaster High Availability Managerとツール。
- Orchestrator(アーカイブ済み) - MySQLレプリケーション・トポロジー管理および高可用性ソリューション。
- Percona Replication Manager - Pacemaker向け非同期MySQLレプリケーション管理エージェント。ファイルおよびGTIDベースのレプリケーション、boothを用いる地理的に分散したクラスタをサポートする。
- replication-manager - MariaDB 10.x、MySQL、Percona Server 5.7のGTIDレプリケーション・トポロジーを管理する高可用性ソリューション。
MCP
- MCP MariaDB Server - 公式MariaDB MCPサーバー。
- MySQL MCP Server - Model Context Protocolを通じてMySQLを公開する高度なMCPサーバー。
- TiDB MCP Server - TiDB向けMCPサーバー。
プロキシ
MySQL向けプロキシ
- MySQL Router - InnoDB Clusterの一部であり、アプリケーションとバックエンドMySQLサーバー間に透過的なルーティングを提供する軽量ミドルウェア。
- ProxySQL - MySQL向け高性能プロキシ。
レプリケーション
レプリケーション関連ソフトウェア
- data-diff(アーカイブ済み) - 2つの異なるデータベース間の行を効率的に差分比較するコマンドラインツールおよびPythonライブラリ。
スキーマ
追加スキーマ
- common_schema - 関数ライブラリ、ビューライブラリ、QueryScriptインタープリターを提供するMySQL向けDBAフレームワーク。
- sys(アーカイブ済み) - MySQL管理者がMySQLデータベースの利用状況を把握するためのビュー、関数、プロシージャのコレクション。sys schema docsを参照。
セキュリティ
データベースからの機密データ漏洩を防ぐツール(暗号化、マスキング、トークン化、ハニーポットなど)
- Acra - SQLデータベース保護スイート。強力な選択的暗号化、SQLインジェクション防止、侵入検知システムを提供する。
- myanon - MySQLダンプファイル向けストリーミング匿名化ツール。stdinからmysqldump出力を読み込み、匿名化済みデータをstdoutへ書き込む。決定論的ハッシュ、固定値、JSONフィールドの匿名化、Python拡張をサポートする。
- myldapsync - MySQLまたはMariaDBのユーザーをLDAPディレクトリ内のユーザーと同期する。
サーバー
MySQLサーバーのフレーバー
- MariaDB - コミュニティ主導で開発されたMySQLサーバーのフォーク。
- MySQL Server & MySQL Cluster - Oracle公式のMySQL ServerおよびMySQL Clusterディストリビューション。
- MyVector - サーバープラグインとして配布される、MySQL向けネイティブベクトル検索プラグイン。
- Percona Server - 強化されたドロップインMySQL置換。
- TiDB - MySQLプロトコルと互換性のある分散HTAPデータベース。
シャーディング
シャーディング・ソリューション/フレームワーク
- Jetpants - Tumblrによる、大規模なレンジシャーディングクラスタを管理する自動化スイート。
- Vitess - 大規模Webサービス向けMySQLデータベースのスケールを容易にするサーバーとツールを提供する。
ツールキット
ツールキット、汎用スクリプト
- sqlaxe - SQLファイルを検索、フィルタリング、整形、分割するCLIツール。
- gh-ost - GitHubによるMySQL向けオンラインスキーママイグレーション。
- go-mysql - MySQLネットワークプロトコルとレプリケーションを扱う純粋なGoライブラリ。
- MySQL Utilities(非推奨) - 個別に、またはレプリケーション階層内でMySQLサーバーを保守・管理するために使う、Pythonで書かれたコマンドラインユーティリティのコレクション。
- Percona Toolkit - 手動で行うには困難または複雑すぎる多様なMySQLサーバー・システム作業を実行する、高度なコマンドラインツールのコレクション。
- sql-splitter - mysqldumpファイルの分割、結合、変換、検証、サンプリングを行う高性能CLI。
- Swoof - 一時テーブルを介したステージング・スワップを実行し、ファイル/クリップボード対象をサポートする超高速MySQLテーブルインポーター。
- UnDROP(アーカイブ済み) - 削除または破損したInnoDBテーブルからデータを復元するツール。
リソース
この段階では、リストの規模を懸念し「リソース」にはWebサイト、ブログ、スライド、プレゼンテーション動画などを含めない。
電子書籍
MySQLに関する電子書籍および関連資料
- Database Systems Lecture Notes - SQLの基本セットアップ、演習、問題を扱う章を含む、データベースシステムの講義ノート(PDF、HTML、ODT、Markdownで利用可能)。
- SQL-exercise - スキーマ説明図、スキーマ構築用SQLコード、SQLの問題と解答を含む複数のSQL演習。ウィキブックSQL Exercisesに基づく。
インキュベーション中
本番利用ではないことが知られているものの、注目または実体があり、紹介に値するプロジェクト。
- VillageSQL - エージェント型AI時代の拡張を備えるMySQL向けドロップイン置換。