このページの内容

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向けTPCCTPCHベンチマークの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コネクター

  • 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-nodemha4mysql-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

プロキシ

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向けドロップイン置換。