MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL 所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。
为了让开发者更好的了解使用MySQL,充分发挥其灵活性的优势。云栖社区组织翻译了GitHub Awesome MySQL 资源,其中不仅涵盖MySQL部署、开发、性能测试等操作中使用的工具包和库,还包括MySQL相关的会议、多媒体等资源。
性能、结构和数据分析工具
- Anemometer - Box SQL慢查询监控器
- innodb-ruby - Ruby中的InnoDB文件格式分析器
- innotop - innotop是一个MySQL的顶级克隆品,其功能多样化并兼具灵活性
- pstop - MySQL中的一个顶级应用程序,用于搜集、汇总和显示来自performance_schema中的信息
- mysql-statsd - 一个Python进程,用于从MySQL中收集信息,然后将其通过 StatsD发送到Graphite中
- MySQLTuner-perl - 一个用于使用者快速回顾MySQL的安装过程,然后做出相应的调整以提高性能和稳定性的脚本
备份
备份/还原/恢复工具
- MyDumper - MySQL中逻辑、并行备份/转存工具
- MySQLDumper - 基于Web的开源备份工具-对共享虚拟主机很有帮助
- Percona Xtrabackup - MySQL中的一个基于服务器的开源的热备份实用程序-在备份过程中不锁定你的数据库
性能测试
用于服务器压测的工具
- iibench-mysql - MySQL/Percona/MariaDB中基于 Java 版本的索引插入性能测试工具
- Sysbench - 一个模块化、跨平台以及多线程的性能测试工具
聊天工具
集成到聊天室的脚本
配置
MySQL 配置实例及指导
- mysql-compatibility-config - 让MySQL的配置更像是新的(或老版本)的MySQL 版本
连接器
多种编程语言的MySQL连接器
- Connector/Python - Python平台和开发的标准化数据库驱动程序
- go-sql-driver - 一个面向Go 语言的数据库/SQL包的轻量级极速的 MySQL 驱动程序
- libAttachSQL - libAttachSQL 是MySQL 服务器的一个轻量级、非阻塞的C语言API
- MariaDB Java Client - - 针对 Java 应用的 MariaDB 客户端库,满足LGPL协议许可
- MySQL-Python - 用于连接 Python 程序的 MySQL 数据库连接器
- PHP mysqlnd - MySQL的本地驱动,摒弃了过时的 libmysql 基础驱动
部署
MySQL 部署工具
- MySQL Docker - Docker官方镜像
- MySQL Sandbox - 可秒级安装一个或多个MySQL服务器的工具,该工具方便、安全且全控制
开发
MySQL相关的开发工具
- Flywaydb - 数据库与迁移;任何情况下都可轻松可靠地演进数据库版本;Liquibase - 用于数据库的源码控制
- Propagator 一个用于多维拓扑上集中模式和数据部署的工具
GUI
GUI前端和应用
- Adminer - 用于单个PHP文件中的数据库管理
- HeidiSQL - Windows系统中的MySQL GUI前端
- MySQL Workbench - 为数据库管理员和开发者对数据库设计和建模提供了集成工具环境
- phpMyAdmin - 一个由PHP语言编写的免费软件工具,目的是在Web上提供对MySQL的管理功能
- SequelPro - Mac版本的MySQL 的数据库管理应用程序
- mycli - 一个带自动补全和语法高亮的终端版 MySQL 客户端
HA
高可用性解决方案
- Galera Cluster - 一个基于同步复制的真正的多主机集群方案
- MHA - 针对 MySQL 的优秀的高可用管理器及工具
- MySQL Fabric - 一个用于管理MySQL服务器集群的可扩展框架
- Percona Replication Manager - MySQL 的异步复制管理代理。支持以文件和 GTID 为基础的复制,同时使用Booth 实现的地理位置分布式集群
代理
MySQL中的代理
- MaxScale - 开源的、以数据库为中心的代理
- Mixer - 由GO语言编写的MySQL代理,其目的是为MySQL分片提供一个简单的解决方案
- MySQL Proxy - 一个处于你的客户端和MySQL服务器之间的简单应用程序,可以用于监控、分析或者转变二者的通信方式
- ProxySQL - MySQL中的高性能代理
- MySQL Router -MySQL Router是一个轻量级的中间件,为应用程序和后端MySQL服务器提供透明的路由路径
复制
与复制相关的软件
- orchestrator - MySQL复制拓扑管理和可视化工具
- Tungsten Replicator - MySQL的一个高性能、开源的数据复制引擎
模式
附加模式
- common_schema - MySQL的数据库管理员框架,提供了一个具有函数库、视图库和查询脚本的解释器
- sys - 一个视图、函数和过程的集合,用来帮助 MySQL 管理人员更加深入理解 MySQL 数据库如何使用的
服务器
MySQL服务器
- MariaDB - MariaDB是一个由社区开发的MySQL服务器的分支
- MySQL Server & MySQL Cluster - Oracle官方的 MySQL 服务器和MySQL 集群分布
- Percona Server - 一个加强版、可替代MySQL的新生服务器
- WebScaleSQL - WebScaleSQL 的5.6版本,其基于 MySQL 5.6 社区版本
分片
分片解决方案和框架
- vitess - 针对大规模的 web 服务,vitess 同时提供了服务和工具以便于 MySQL 数据库的缩放
- jetpants - jetpants是由一个Tumblr 开发的自动化套件,用于管理大规模分片集群
工具包
工具包、通用脚本
- go-mysql - 一个纯 Go语言的库,用于处理 MySQL 中的网络协议和复制
- MySQL Utilities - 一系列由Python编写的命令行工具,用于维护和管理单一或多层的MySQL服务器
- Percona Toolkit - 一个先进的命令行工具集,用于处理 MySQL 服务器和系统中一些任务,这些任务如果采用手动处理的话过于困难或复杂
- openark kit - 一组实用的工具,用于日常的维护工作,包括一些复杂的或需徒手操作的操作,该工具用 Python 语言编写
- UnDROP - 该工具用于恢复 InnoDB 表中删除或损坏的数据
资源
本节所述的资源不包括网站、博客、幻灯片、演示视频等
会议
围绕MySQL及其相关议题周期性的、公开的会议
- FOSDEM - 一个免费的见面会活动,旨在帮助软件开发人员互相熟悉、交流思想与相互协作。每年在Brussels 举办,为MySQL和它的伙伴提供了场地
- MySQL Central - Oracle年度MySQL大会,同时是 Oracle Open World的一部分
- Percona Live - MySQL 和 OpenStack 的重要会议
- SCALE - 一个每年在California南部召开,由 社区举办的Linux 和 开源软件大会。当地MySQL社区会以MySQL Community Day之名举办一次游行活动
电子书
MySQL相关的电子书及其他资料
- SQL-exercise - 包含多个SQL练习实例,包括架构描述、采用SQL语法去建立模式、SQL中的常见问题和解决方案。这些实例以 wikibook SQL 练习为基础
媒体
本节主要涵盖公开、持续的视频和音频转播,不包括多如牛毛的会议演讲
- DBHangOps - 由来自MySQL社区成员参加的Goole聚集大会,大会两周举办一次,大会的日常就是探讨一切与 MySQL 的相关事物
- OurSQL Podcast - MySQL 数据库社区播客
新闻周刊
顾名思义,订阅新闻周刊需要一个 email 地址。下表所列的资源也仅需一个Email 地址就可以搞定
- Weekly MySQL News - 包括任何关于 MySQL 的消息的非官方新闻周刊
以上为“MySQL资料大全”所有内容,更多精彩敬请期待。
编译自:https://github.com/shlomi-noach/awesome-mysql/blob/gh-pages/index.md
译者:刘崇鑫 校对:王殿进 毛鹤
如果发现原文翻译有误,请邮件通知云栖社区(yqeditor@list.alibaba-inc.com),感谢您的支持。
【相关资料】阿里云RDS MySQL经过多年的积累,不断的进行性能优化,并定制了适合不同行业需求的功能,同时也向官方和社区贡献力量。云栖社区也组织了两场关于MySQL的两场在线培训,相关资料如下: