Total Pageviews

Tuesday, 23 August 2016

Awesome MySQL


A curated list of awesome MySQL software, libraries and resources. Awesome
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.
  • 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.
  • 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.

Backup

Backup/restore/recovery tools
  • 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.
  • Sysbench - a modular, cross-platform and multi-threaded benchmark tool.

ChatOps

Scripts integrated into chat rooms

Configuration

MySQL sample configuration and advisors

Connectors

MySQL connectors for various programming languages
  • Connector/Python - a standardized database driver for Python platforms and development.
  • 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.
  • MySQL-Python - MySQL database connector for Python programming.
  • node-mysql - A pure Nodejs Javascript client implementing the MySQL protocol.
  • PHP mysqlnd - MySQL native driver for MySQL, deprecating older libmysql based driver.

Deployment

MySQL deployment tools
  • MySQL Docker - Official Docker images.
  • MySQL Sandbox - 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
  • Propagator - Centralized schema & data deployment on a multi-everything topology
  • Shift - An application that helps you run schema migrations on MySQL databases

GUI

GUI frontends & applications
  • Adminer - Database management in a single PHP file.
  • HeidiSQL - MySQL GUI frontend for Windows.
  • MySQL Workbench - provides DBAs and developers an integrated tools environment for database design & modeling; SQL devleopment; database administration.
  • phpMyAdmin - a free software tool written in PHP, intended to handle the administration of MySQL over the Web.
  • SequelPro - a Mac database management application for working with MySQL databases.
  • mycli - A Terminal Client for MySQL with AutoCompletion and Syntax Highlighting.
  • SQLyog Community edition - SQLyog Community edition. For Windows, works fine under wine in Mac and Linux

HA

High availability solutions
  • Galera Cluster - a true Multimaster Cluster based on synchronous replication.
  • MariaDB Replication Manager - a high availability solution to manage MariaDB 10.x GTID replication.
  • MHA - Master High Availability Manager and tools for MySQL
  • MySQL Fabric - an extensible framework for managing farms of MySQL Servers.
  • Percona Replication Manager - Asynchronous MySQL replication manager agent for Pacemaker. Supports file and GTID based replication, geo-distributed clusters using booth.

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 lightweight middleware that provides transparent routing between your application and any backend MySQL Servers.

Replication

Replication related software
  • orchestrator - MySQL replication topology management and visualization tool.
  • Tungsten Replicator - A high performance, open source, data replication engine for MySQL.

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.

Server

MySQL server flavors

Sharding

Sharding solutions/frameworks
  • vitess - vitess provides servers and tools which facilitate scaling of MySQL databases for large scale web services.
  • jetpants - An automation suite for managing large range sharding clusters, by Tumblr.

Toolkits

Toolkits, general purpose scripts
  • 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.
  • 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.
  • gh-ost - GitHub’s online schema migration for MySQL.
  • 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.
  • 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
  • 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
  • DBHangOps - a bi-weekly google hangout meeting of various members of the MySQL community that simply want to talk shop about MySQL in their day-to-day .
  • OurSQL Podcast - The MySQL database community podcast.

Newsletters

Newsletters require an email address, by definition. List below are newsletters that require nothing but an email address
from http://shlomi-noach.github.io/awesome-mysql/
----------------------

分析工具

性能,结构和数据分析工具
  • Anemometer - 一个 SQL 慢查询监控器。
  • innodb-ruby - 一个对 InooDB 格式文件的解析器,用于 Ruby 语言。
  • innotop - 一个具备多种特性和可扩展性的 MySQL 版 'top' 工具。
  • pstop - 一个针对 MySQL 的类 top 程序,用于收集,汇总以及展示来自 performance_schema 的信息。
  • mysql-statsd - 一个收集 MySQL 信息的 Python 守护进程,并通过 StatsD 发送到 Graphite。

备份

备份/存储/恢复 工具
  • MyDumper - 逻辑的,并行的 MySQL 备份/转储工具。
  • MySQLDumper - 基于 web 的开源备份工具-对于共享虚拟主机非常有用。
  • mysqldump-secure - 将加密,压缩,日志,黑名单和 Nagios 监控一体化的 mysqldump 安全脚本。
  • Percona Xtrabackup - 针对 MySQL 的一个开源热备份实用程序——在服务器的备份期间不会锁定你的数据库。

性能测试

给你的服务器进行压测的工具
  • iibench-mysql -基于 Java 的 MySQL/Percona/MariaDB 索引进行插入性能测试工具。
  • Sysbench - 一个模块化,跨平台以及多线程的性能测试工具。

聊天应用

集成进聊天室的脚本

配置

MySQL 配置实例及指导

连接器

多种编程语言的 MySQL 连接器
  • Connector/Python - 一个对于 Python 平台和开发的标准化数据库驱动程序。
  • go-sql-driver - 一个 Go 语言的轻量级、极速的 MySQL 驱动程序。
  • libAttachSQL - libAttachSQL 是 MySQL 服务器的一个轻量级,非阻塞的 C 语言 API。
  • MariaDB Java Client - 针对 Java 应用且经过 LGPL 许可的 MariaDB 客户端库。
  • MySQL-Python - 一个 Python 语言的 MySQL 数据库连接器。
  • PHP mysqlnd - 针对 MySQL 的 MySQL 本地驱动,弃用过时的 libmysql 基础驱动。

开发

支持 MySQL 相关开发的工具
  • Flywaydb - 数据库迁移;任意情况下轻松可靠地演变你的数据库版本。
  • Liquibase - 对你的数据库进行源代码控制。
  • Propagator - 集中模式和数据部署在一个多维拓扑上。

GUI

前端和应用的 GUI
  • Adminer - 一个 PHP 编写的数据库管理工具。
  • HeidiSQL - Windows 下的 MySQL 图形化管理工具。
  • MySQL Workbench - 提供给数据库管理员和开发人员进行数据库设计和建模的集成工具环境;SQL 开发;数据库管理。
  • phpMyAdmin - 一个 PHP 写成的开源软件,意图对 web 上的 MySQL 进行管理。
  • SequelPro - 一个 mac 下运行 MySQL 的数据库管理应用程序。
  • mycli - 一个带自动补全和语法高亮的终端版 MySQL 客户端

HA

高可用解决方案
  • Galera Cluster - 一个基于同步复制的多主机集群方案。
  • MHA - 针对 MySQL 的优秀高可用管理器及工具
  • MySQL Fabric - 一个用于管理 MySQL 服务器场(Server Farms)的可扩展框架。
  • Percona Replication Manager - 针对 MySQL 的异步复制管理代理。支持以文件和 GTID 为基础的复制,使用 booth 实现的地理分布式集群。

代理

MySQL 代理
  • MaxScale - 开源,以数据库为中心的代理。
  • Mixer - Go 实现的一个 MySQL 代理,目的为 MySQL 分片提供一个简单的解决方案。
  • MySQL Proxy - 一个处于你的客户端和 MySQL 服务端之间的简单程序,它可以检测、分析或者改变它们的通信。
  • ProxySQL - 高性能的 MySQL 代理。

复制

复制相关的软件

模式

附加模式
  • common_schema - MySQL DBA 的框架, 提供一个具有函数库、视图库和查询脚本的解释器。
  • sys - 一个视图、函数和过程的集合,以帮助 MySQL 管理人员更加深入理解 MySQL 数据库的使用。

服务器

MySQL server flavors

分片

分片解决方案/框架
  • vitess - 对于大规模的 web 服务,vitess 提供服务和工具以便于 MySQL 数据库的缩放。
  • jetpants - 一个自动化套件,用于管理大规模分片集群,由 Tumblr 开发。

工具包

工具包,通用脚本
  • go-mysql - 一个纯 go 的库,用于处理 MySQL 的网络协议和复制。
  • MySQL Utilities - 一个命令行实用程序的集合,Python 语言编写,用于维护和管理单一或多层的 MySQL。
  • Percona Toolkit - 一个先进的命令行工具集,用于执行对于 MySQL 服务器和系统过于困难或复杂的任务。
  • openark kit - 一组实用的工具,解决日常的维护工作,包括一些复杂的或需徒手操作的,用 Python 语言编写。
  • UnDROP - 一个用来恢复删除或损坏的 InnoDB 表中数据的工具。

资源

在这个阶段,“资源”不包括网站,博客,幻灯片,演示视频等。这些资源列表的大小令人恐惧。

会议

围绕 MySQL 进行公开,经常性的大会。
  • FOSDEM - 一个软件开发人员见面、交流思想与协作的活动。每年在 Brussels 举行。提供 “MySQL & friends” 开发工作室。
  • MySQL Central - Oracle 年度 MySQL 大会,是 Oracle Open World 的一部分。
  • Percona Live - MySQL 和 OpenStack 的重要会议。
  • SCALE - 一个每年在南加州举办,由社区组织的 Linux 和 开源软件大会。由当地 MySQL社区组织并以MySQL社区日的名义举办。

电子书

MySQL 电子书以及相关材料。
  • SQL-exercise - 包含几个 SQL 练习,包括模式描述,用 SQL 语句去建立模式,SQL 的问题及解决方案。以 wikibook SQL 练习为基础。

媒体

公开,持续的视频和音频转播。这不包括会议演讲那令人恐惧的资源列表大小。
  • DBHangOps - 两周一次由各种各样的 MySQL 社区人员参加的 google 聚集大会,大会的日常就是谈论一切关于 MySQL 的东西。
  • OurSQL Podcast - MySQL 数据库社区播客。

新闻周刊

__顾名思义,新闻周刊需要一个 email 地址。下面列出周刊只需要一个 email 地址。
  • Weekly MySQL News - 非官方的 MySQL新闻摘要,包含关于MySQL的各类信息。

微信公众号

  • 数据库开发者:专注分享数据库相关内容,包括:各种主流 DB 的最佳实践、数据库基础知识、性能优化、数据安全等。 
  • Linux爱好者:专注分享 Linux/Unix 相关内容,包括:工具资源、使用技巧、课程、书籍等。 
    from https://github.com/jobbole/awesome-mysql-cn
    -------------------
    from http://hao.jobbole.com/?catid=7

    数据存储

    更多 »
    • Titan

      一个分布式图形数据库
    • InfluxDB

      开源分布式数据库
    • CartoDB

      云上的地理数据库
    • MapDB

      一个java嵌入式数据库
    • opentsdb

      一个分布式可扩展的时间序列数据库
    • TaffyDB

      开源JavaScript数据库

    开发框架

    更多 »

    管理工具

    更多 »
    • sequelpro

      一款Mac平台的MySQL管理工具
    • MyCli

      支持自动补全和语法高亮的 MySQL 客户端
    • Hunk

      Hadoop 新型数据分析工具
    • Vitess

      打造高性能MySQL前端
    • phinx

      php数据库迁移
    • pgModeler

      PostgreSQL 数据库专用的建模工具