awesome-mysql

A curated list of awesome MySQL free and opensource software, libraries and resources.

This list accepts and encourages pull requests. See CONTRIBUTING

Contents

Analysis

Performance, structure & data analysis tools

Anemometer - Box SQL slow query monitor.

innodb-ruby - A parser for InnoDB file formats, in Ruby.

innotop - a ‘top’ clone for MySQL with many features and flexibility.

MySQL Explain Analyzer - A web-based analyzer of EXPLAIN FORMAT=JSON output, providing comments, scalability analysis and permalinks for saved samples.

output, providing comments, scalability analysis and permalinks for saved samples. mysql-statsd - A Python daemon to collect information from MySQL and send it via StatsD to Graphite.

MySQLTuner-perl - A script that allows you to review a MySQL installation quickly and make adjustments to increase performance and stability.

Percona Monitoring and Management - An open-source platform for managing and monitoring MySQL performance.

Prometheus/mysqld_exporter - Time series database for real-time monitoring and alerting.

pstop - a top-like program for MySQL, collecting, aggregating and displaying information from performance_schema. Backup

Backup/restore/recovery tools

Dumpling - Logical, parallel backup/dumper tool for MySQL/TiDB written in GoLang - support csv format output and integrated as library

MyDumper - Logical, parallel backup/dumper tool for MySQL

MySQLDumper - open-source web based backup tool - useful for shared webhosting

Percona Xtrabackup - an open-source hot backup utility for MySQL - based servers that doesn’t lock your database during the backup.

Benchmarking

Tools to stress your servers

iibench-mysql - Java based version of the Index Insertion Benchmark for MySQL/Percona/MariaDB.

go-tpc - A golang port of TPCC and TPCH benchmark for MySQL.

Sysbench - a modular, cross-platform and multi-threaded benchmark tool.

TPCC-MySQL - A port of the popular TPCC benchmark for MySQL.

Binlog-Replication

DM - A High-Availability data migration platform which supports migrating data from MySQL/MariaDB to TiDB and merging shard tables

Kingbus - A distributed MySQL binlog storage system built on Raft

mysql-ripple - Ripple, a server that can serve as a middleman in MySQL replication

ChatOps

Scripts integrated into chat rooms

Configuration

MySQL sample configuration and advisors

mysql-compatibility-config - make MySQL configuration behave more like newer (or older) releases of MySQL.

Connectors

MySQL connectors for various programming languages

Connector/C - Official C driver for MySQL.

Connector/CPP - Official C++ driver for MySQL.

Connector/J - a standardized database driver for the Java platforms and development.

Connector/Net - a standardized database driver for .Net platforms and development.

Connector/Node.js - Official Node.js driver for MySQL.

Connector/Python - a standardized database driver for Python platforms and development.

DBD::mysql - MySQL driver for the Perl5 Database Interface.

go-sql-driver - a lightweight and fast MySQL-Driver for Go’s (golang) database/sql package.

libAttachSQL - libAttachSQL is a lightweight, non-blocking C API for MySQL servers.

MariaDB Java Client - LGPL-licensed MariaDB Client Library for Java Applications.

mex-mariadb - MIT licensed MariaDB/MySQL Client Library for GNU Octave and Matlab.

mysqlclient-python - (Old) MySQL database connector for Python.

node-mysql - A pure Nodejs Javascript client implementing the MySQL protocol.

PHP mysqlnd - MySQL native driver for MySQL, deprecating older libmysql based driver.

PyMySQL - MySQL database connector for Python.

Ruby Mysql2 gem - MySQL driver for Ruby and Rails projects.

Deployment

MySQL deployment tools

MySQL Docker - Official Docker images.

dbdeployer - A tool that installs one or more MySQL servers within seconds, easily, securely, and with full control.

Development

Tools to support MySQL-related development

Flywaydb - Database migrations; Evolve your database schema easily and reliably across all your instances

Liquibase - Source control for your database

Shift - An application that helps you run schema migrations on MySQL databases

Skeema - Declarative pure-SQL schema management system for MySQL and MariaDB, with support for sharding and external online schema change tools

Test database - A sample MySQL database with an integrated test suite, used to test applications and servers

GUI

GUI frontends & applications

HA

High availability solutions

Galera Cluster - a true Multimaster Cluster based on synchronous replication.

MHA - Master High Availability Manager and tools for MySQL.

orchestrator - MySQL replication topology management and High Availability solution.

Percona Replication Manager - Asynchronous MySQL replication manager agent for Pacemaker. Supports file and GTID based replication, geo-distributed clusters using booth.

replication-manager - a high availability solution to manage MariaDB 10.x and MySQL & Percona Server 5.7 GTID replication topologies.

Proxy

Proxies to MySQL

MaxScale - open-source, database-centric proxy.

Mixer - a MySQL proxy powered by Go which aims to supply a simple solution for MySQL sharding.

MySQL Proxy - A simple program that sits between your client and MySQL server(s) that can monitor, analyze or transform their communication.

ProxySQL - High performance proxy for MySQL.

MySQL Router - MySQL Router is part of InnoDB cluster, and is a lightweight middleware that provides transparent routing between your application and back-end MySQL Servers.

Replication

Replication related software

Schema

Add-on schemas

common_schema - DBA’s framework for MySQL, providing a function library, views library and QueryScript interpreter.

sys - A collection of views, functions and procedures to help MySQL administrators get insight in to MySQL Database usage.

Security

Tools that prevents leaking of sensitive data from database (encryption, masking and tokenization, honey-pots, etc)

Acra - SQL database protection suite: strong selective encryption, SQL injections prevention, intrusion detection system.

Server

MySQL server flavors

MariaDB - Community developed fork of MySQL server.

MySQL Server & MySQL Cluster - Official Oracle’s MySQL server & MySQL Cluster distribution.

Percona Server - An enhanced, drop-in MySQL replacement.

TiDB - A distributed HTAP database compatible with the MySQL protocol.

Sharding

Sharding solutions/frameworks

jetpants - An automation suite for managing large range sharding clusters, by Tumblr.

vitess - vitess provides servers and tools which facilitate scaling of MySQL databases for large scale web services.

Toolkits

Toolkits, general purpose scripts

gh-ost - GitHub’s online schema migration for MySQL.

go-mysql - A pure go library to handle MySQL network protocol and replication.

MySQL Utilities - a collection of command-line utilities, written in Python, that are used for maintaining and administering MySQL servers, either individually, or within Replication hierarchies.

openark kit - a set of utilities that solve everyday maintenance tasks, which may be complicated or time consuming to do by hand, written in Python.

Percona Toolkit - a collection of advanced command-line tools to perform a variety of MySQL server and system tasks that are too difficult or complex to perform manually.

UnDROP - a tool to recover data from dropped or corrupted InnoDB tables.

Resources

At this stage “resources” will not include websites, blogs, slides, presentation videos, etc. in fear of list size

Conferences

Public, recurring conferences on and around MySQL

FOSDEM - a free event for software developers to meet, share ideas and collaborate. Annually, in Brussels. Offers “MySQL & friends” room.

MySQL Central - Oracle’s annual MySQL conference, as part of Oracle Open World.

Percona Live - MySQL & Openstack focused conference.

SCALE - A community organized Linux and Open Source conference held annually in Southern California. The local MySQL community runs a track under the name MySQL Community Day.

e-books

e-books as well as relevant materials on and around MySQL

Database Systems Lecture Notes - lecture notes on Database Systems (available in pdf, html, odt and markdown) including a Chapter on SQL that covers basic set-up, exercises and problems.

SQL-exercise - contains several SQL exercises, including the schema description figure, SQL code to build schema, questions and solutions in SQL. Based on wikibook SQL Exercises.

Media

Public, ongoing video & audio casts. This excludes conference presentations in fear of list size

Newsletters

Newsletters require an email address, by definition. List below are newsletters that require nothing but an email address