MariaDB FAQ(Part 2)

MariaDB社区

MariaDB是由开源社区开发的一个项目。Monty Program Ab雇佣了很多MySQL原先的核心开发人员作为目前项目的主力。当然,任何人都可以参与开发。

以下链接提供的信息希望能帮助您参与MariaDB,使其成功。

动态与资讯

MariaDB相关的新闻、博客、访谈和介绍。

MariaDB 案例学习

成功案例学习和使用MariaDB的案例,包括从MySQL迁移。如果您也想贡献学习案例,随时邮件到community[AT]mariadb[dot]org。

我们还有很多开源项目正打算使用MariaDB

De Particulier à Particulier切换到MariaDB

De Particulier à Particulier: 法国最大的房地产网站已经切换到MariaDB。

“经过几个月的使用,实实在在的好处是:增强了稳定性,提高了性能和更少的异常。”

FictionPress使用MariaDB和TokuDB

FictionPress运营FictionPress和FanFiction,拥有超过600万的小说作品,数百万的用户。FictionPress使用MariaDB和TokuDB来管理他们的论坛、评论,和接口消息系统。

阅读更多关于FictionPress为什么选择MariaDB & TokuDB:可预测的性能、崩溃恢复,在线变更schema和索引。

Host Bulgaria使用MariaDB监控和最优化客户的数据库

Host Bulgaria在Sliven是一个流行的主机托管公司,商业主机托管业务已经超过五年。他们现在有超过7000个网站。

Host Bulgaria运行有CentOS 4和CentOS 5服务器。虽然CentOS 4排除了MariaDB的使用(MariaDB 5.2目前只认证运行在Red Hat Enterprise Linux 5/CentOS 5,以及更高的版本上),所有Host Bulgaria’s的生产CentOS 5服务器都是运行MariaDB 5.2。

服务器通常包括2颗四核志强处理器、32GB内存和12块SAS和SATA的硬盘组合,2至4块15000转SAS硬盘专给数据库使用。服务器运行MariaDB都是在64位CentOS 5和cPanel安装的。MariaDB配置最大内存效率,分配1 GB的查询缓存。Table cache,read/write/sort_buffers和innodb_buffer_pool_size也增加了。这些服务器也运行了Apache、PHP和利用Exim来收发邮件。

Host Bulgaria的经营者Panayot Belchev说:他们迁移到MariaDB,很大程度是因为用户统计(User Statistics)特性。“当然the MySQL-Sun-Oracle news 帮助我们切换,”他补充道。

使用userstat,他们监控每个客户的CPU使用情况以及检测数量过多的update/select问题。他们还帮助客户增加适当的索引来优化表。

Panayot说:从MySQL5.1迁移到MariaDB 5.2是简单地是删除掉MySQL RPMs和安装MariaDB包,然后运行mysql_upgrade,” Host Bulgaria开始使用(immersion in)MariaDB 5.2-beta在新服务器上,他们逐渐开始增加客户帐户。“我们对测试版的稳定性印象很深刻,毫无疑问的决定所有客户数据库使用MariaDB,”他补充道。

Limelight Network使用MariaDB和TokuDB

Limelight Networks Inc是一个互联网平台,该平台集成了许多在线有价值链内容的部分关键业务(这家公司的更多信息)。它全球有超过1800个客户。解决方案是倾向于他们的敏捷云存储

在Limelight从事云服务的技术副总裁Wylie Swanson曾指出“从一开始TokuDB可以和MariaDB密切地工作。 安装它非常快速和简单,我们启动和运行了几个小时,它用默认设置提供开箱即用(worked out-of-the-box)功能,这样我们可以关注我们的平台性能的最大化,而不是我们的数据库。”

阅读在Tokutek网站的完整案例

Modthesims.info:大粉丝网站选择MariaDB,感谢其额外特性

Modthesims.info是世界上最多的粉丝(fansite)网站奉献给模拟人生游戏(模拟人生2、3及其所有扩展)。网站每月PV超过4000万次,并使用超过20TB带宽服务大量的模拟人生游戏玩家。

该网站是基于大量定制版的vBulletin,主要使用MyISAM表,数据库服务器使用了Intel Harpertown 4-core 8GB 机器,大量使用Membase和xcache缓冲。

创始人Delphy说:虽然这“只是”粉丝网站,它被大量用户使用,任何类型的停机时间都会立即被用户发现的。所以很显然一个可靠的数据库系统是非常关键的。Modthesims.info自从2010年2月一直在使用MariaDB 5.1。

为什么Delphy挑选MariaDB?因为它基本上兼容MySQL,但有额外的特性。”

OLX使用MariaDB承载每天4000万PV

OLX是一个国际免费信息分类目录,它每天PV 4000多万次,托管在Rackspace,像Hi5和Friendster一样,它已经被应用在流行的社交网络站点。Binlogic开始于一个外部DBA咨询任务:通过MariaDB的增强特性来提高数据库性能。

OLX运行CentOS 5.5的服务器。在2011年第二季度,OLX开始从MySQL迁移到MariaDB 5.2系列。作为第一步:OLX开始在QA测试,然后迁到有大量数据的测试和开发环境。

数据库服务器是Dell PowerEdge R710配置72GB内存,两颗4核Intel志强处理器。对于操作系统,有2块450 GB RAID 1运行EXT3,对于数据库,在XFS上有4×450 GB RAID 10。

Binlogic的Santiago Lertora说:我们开始切分评论并注意到巨大的性能提升。”

因特性决定使用MariaDB主要包含:INFORMATION_SCHEMA 对用户统计增强和虚拟列可以评估。Lertora接着说:MariaDB稳定是必须的,与之前安装的MySQL按预期那样获得80%的性能提升。

OLX关注MariaDB进一步的增强,并且今后会考虑HandlerSocket。

Paybox Services部署MariaDB

在法国,对于在线支付解决方案,Paybox Services是一个主要参与者。最近他们已经选择了SkySQL Ab的服务,他们的团队部署MariaDB作为数据库的选择。

Paybox Services有一个安全支付平台,通过多种渠道接受交易,例如支付终端、互联网、移动交易,IVR-based交易, 甚至从呼叫中心。Paybox拥有超过16000的商人, 在法国占据25%电子商务交易的市场份额的和每年处理超过1.1亿的交易。

说到首席顾问Stephane Varoqui,在法国SkySQL的专业服务,我们得知从MySQL 5.1迁移后,有三个MariaDB服务器被用在生产线,还有一个测试服务器。这是部署在Red Hat Enterprise Linux 6.0,MariaDB 5.2.4复制预览,使用XFS文件系统。

Paybox选择MariaDB有几个原因:

  • 利用sync_binlog = 1的组提交
  • 逻辑备份不拖延启动的事务而使用一致的快照
  • 有多事务能力的存储引擎
  • PBXT在60%的写工作负载下,看起来更好,选择的可用性很有帮助。(架构使用无序 PK序列来构建一个唯一服务器ID,这样迫使我们在PK第一个位置嵌入日期和时间字段,导致辅助索引比所需更大,这是必要的)
  • MyISAM表使用GIS索引和二分(quadratic)搜索
  • MariaDB关注优化器重构,是值得赞扬的,在后台数据库中使用5.3将有极大的帮助

迁移通常会有问题。Paybox仍然希望MariaDB有以下特性:包括半同步复制和在文件系统操作期间有字典锁,例如分区被删,目前这些存在于MySQL 5.5。然而,SkySQL花了六个月的开发时间,大约一个星期做生产准备,现在Paybox是一个MariaDB产品的快乐用户,也是对SkySQL公司满意的客户。

参阅

  • press release
  • SkySQL咨询提供了一个窗口专注于所有数据库的话题,包括:硬件和操作系统升级及优化策略、数据库升级策略,在线维护任务,监视工具分析、安全规范,查询审核、架构建议和存储引擎QA

SaltOS看到MariaDB的子查询益处

SaltOS始于2007年Josep Sanz和Alex Mulle在Wild Spectrum Software Solutions S.L.的一个私人项目。到2010年他们决定把它开源并在GPLv3下发行它。SaltOS是一个商业管理解决方案,可用于管理客户、项目、发票和更多事情。它集成了客户关系管理(CRM)和企业资源规划(ERP)于一体。

SaltOS和RhinOS的用户,运行应用程序可以使用两个数据库引擎:SQLite3和MySQL。当Sanz被问及为何切换到MariaDB,回答道:“一般地,我在MySQL查询优化花费了很多时间。我最大问题是我必须要做大量工作来获得一个可接受的性能。当表的数据量大或复杂查询因它使用子查询或它与其它表联结。”

好奇有多少解决方案已经从MySQL 迁移MariaDB,我们发现使用它的两个项目(一个在线商店和一个运输公司)是MariaDB的开心用户。Sanz现在要求托管提供商提要么添加MariaDB要么完全用MariaDB替换MySQL。

进一步问Sanz为什么不是MySQL,答道,“在我看来,MySQL不再是它曾经那样的自由软件项目。”他继续说道:“MariaDB 100%兼容MySQL,有很多的改进超越MySQL,和MySQL相比性能非常好。”

据Sanz所讲,所有的迁移到目前为止已经完全没有任何问题,他们将一如既往的向前走。现在在SaltOS百科有一个条目关于您为什么用MariaDB代替MySQL。

SpamExperts:快速有效的迁移数百台服务器从MySQL到MariaDB

SpamExperts有自己的反垃圾邮件过滤云,提供作为一个软件即服务(SaaS)模型。此外,他们有一个电子邮件安全产品,他们安装、更新和监控现场。大多数SpamExperts的反垃圾邮件技术是内部开发,并且广泛利用了MySQL数据库。所有客户端需要他们的实时过滤,所以它们有许多不同的数据流被MySQL处理。复制通常是用来同步集群中系统数据和发送实时数据。SaaS云是在四个国家内复制来保持冗余,而客户端设备在世界各地传送数据检索。

经过广泛的测试,SpamExperts高效的不到三个小时把管理的约三百台MySQL服务器迁移到MariaDB。SpamExperts B.V.的首席技术官Dreas van Donselaar“说:过去我们遇到各种MySQL bugs。尽管事实上我们给它们反馈了,一年之后bugs仍然没有解决,从MySQL 5.0升级到MySQL 5.1过程有bugs,因此防止我们使用5.1所有的新特性”。

“我们遇到了一些MariaDB和MySQL一样的bug。然而,最大的区别是,当我们上报了这些错误时,他们迅速在48小时内解决!” Dreas惊呼道。快速的响应时间对MariaDB产品的质量和开发团队支持的信心大增。

在测试阶段,SpamExperts在转换时候发现了几个bugs,大约影响了他们的系统5%:长表名的不正确转换,在某些系统中的thread_stack对于MariaDB 5.1太低,这样,导致了一些崩溃,转换期间新建的表,由于表名更改导致表名冲突和复制断开。这些bugs都出现在MySQL和在没解决之前的MariaDB代码库。这个过程通常在irc.freenode.net的#maria频道使用IRC来解决了。

正享用MariaDB几个月后的SpamExperts被问到MariaDB怎么样?Dreas回答道:“它运行非常好!我们没有遇到任何严重的新问题。他为他的工作团队是如此热爱这个软件感到高兴,我们相信应该允许MariaDB迅速成为下一个关系数据库的标准”。

Web of Trust (WOT) MariaDB升级

我们采访了Dean Clatworthy和Timo Ala-Kleemola关于Web of Trust 对MariaDB的使用,他们的用户群更亲切地称为‘“WOT”’。

WOT是一个服务,向您展示了哪些网站是您可以信任的,它是基于世界各地的成千上万用户的经验。WOT利用自动安全技术识别在线威胁:糟糕的用户体验,网络钓鱼和对孩子们年龄不适当的内容等这些需要人工介入。对多数浏览器来说,WOT简单易用、快速和完全免费的。Facebook链接也通过WOT服务来保护。

对于WOT,开始于2011年2月迁移两台生产服务器,一台备份服务器,和一个测试环境(在2012年,这个有了惊人的增长)。迁移的原因很简单:“WOT需要从MySQL 5.0升级到MySQL 5.1, MariaDB为升级提供了更好的工具,”Ala-Kleemola说道。

当被问到在迁移过程中是否有阻碍,Ala-Kleemola说“值得一提我们没有遇到任何问题。”他继续道,“一旦您阅读说明书,安装就直接进行,并且MariaDB一切正常。”

像往常一样,我们MariaDB团队非常高兴“一切正常”。继续并下载Web of Trust,并让它运行在所有主要浏览器,如火狐、Chrome、Opera和更多浏览器。

MariaDB相关新闻报道

这里是MariaDB相关的新闻报导和新闻稿,以时间倒序排列。

推荐的MariaDB/MySQL书籍

以下列出的是推荐MariaDB和MySQL的书。为方便我们在这里提供了亚马逊网站链接,但是它们可以在许多其他的书店找到。

如果您想获得以下您喜欢的MySQL / MariaDB,请留下您的评论。

供开发者开发MariaDB或MySQL源代码的书

  • Understanding MySQL Internalsby Sasha Pachev, former MySQL developer at MySQL AB.
    • 这是我们知道的唯一一本书描述MariaDB/ MySQL的内幕的书。值得那些想要了解和开发MariaDB的人员拥有!
    • 并不是覆盖所有的主题,并且有一些部分有点过时,但是对这个主题仍然是最好的书。
  • MySQL 5.1 Plugin Developmentby Sergei Golubchik and Andrew Hutchings
    • MySQL和MariaDB设计的插件接口的作者Sergei写道:任何想要编写MariaDB插件者必须阅读它!

供MariaDB / MySQL终端用户的书

  • MariaDB Crash Courseby Ben Forta
    • 第一本MariaDB的书!
    • 供那些想学习SQL和MariaDB基础知识的人。
    • 现在购买。在Amazon.com或您最喜欢的书店购买。
  • SQL-99 Complete, Reallyby Peter Gulutzan & Trudy Pelzer.
    • 所有您想知道的SQL 99标准。优秀的参考书!
    • 在知识库免费阅读!
  • MySQL (4th Edition)by Paul DuBois
    • 如果您打算学习使用MySQL / MariaDB,这是可第一选择的书。
  • MySQL Cookbookby Paul DuBois
    • 大量的示例来演示如何使用MySQL。正如Paul所有的书籍,非常的有价值,想阅读“干货”的读者非常爽。
  • High Performance MySQL, Second Edition, By Baron Schwartz, Peter Zaitsev, Vadim Tkachenko, Jeremy D. Zawodny, Arjen Lentz, Derek J. Balling, et al.
    • “高性能MySQL指导构建一个快速、可靠的MySQL系统具有权威性。由具有多年构建系统经验的著名专家们编写,这本书涵盖MySQL各方面的性能,并详细集中研究了健壮性、安全性和数据完整性。深度学习先进的技术,这样您就能释放出出MySQL的全部效能。“(来自在O’reilly的描述)
  • MySQL Admin Cookbook
    • 一个快速逐步指导MySQL用户和数据库管理员来解决现实世界对MySQL配置和管理挑战

这是涵盖了通过两个MySQL认证考试的官方指南。它是直到5.0版本的服务有效的,所以它忽略了MySQL 5.1和其更高版本所有可用的特性 (包括MariaDB 5.1和其更高版本),对于 终端用户,它提供了一个良好的基础来了解MySQL。

MariaDB博客

在MariaD的开发过程中,您想紧跟MariaDB最新改变的最好方法就是阅读 (和订阅)不同的开发人员的博客。这里有一个列表来帮助您开始:

  • Monty Program Group Blog — Monty Program员工共享的博客。
  • Planet MariaDB— 这个博客包含几个MariaDB开发人员的博客。博客包括:
    • Monty Says — Michael “Monty” Widenius’ 个人博客。
    • Colin Charles Agenda — Colin Charles个人博客。Colin是Monty Program’s MariaDB的首席布道者(Chief Evangelist)。
  • Cranial Collage — Mark G’s个人博客,列出了在Linux和Solaris的Sparc平台来构建MariaDB。
  • Michal Hrušecký —Michal利用 OpenSUSE 的打包服务为openSUSE和其它Linux发行版编译相应的MariaDB版本,使得MariaDB跟这些平台更好的结合。

其他好的博客:

MariaDB相关的博客文章

MariaDB相关的博客文章列表。以时间倒序的形式。也可以核对各种MariaDB博客

  • Moving to MariaDB - 31 July 2012 – On moving to MariaDB and why the repositories are a good idea.
  • MariaDB 1 shot - 21 June 2012 – Written in Korean, this is on KTH’s blog.
  • MariaDB’s Virtual Columns - 19 April 2012 – Jonathan Levin takes MariaDB’s virtual columns for a spin to store business rules next to table data.
  • MySQL migrate to MariaDB - 15 November 2011 – showing how easy it is to migrate to MariaDB in OpenSUSE. It really is a drop-in replacement.

Installing MariaDB with WampServer - 13 December 2010 – showing how easy it is to install MariaDB with WampServer.

演示文稿

有关MariaDB各种会议上演示文稿

2012

MariaDB 5.5 – ветка MySQL с эволюционными и революционными изменениями - in Russian, “MariaDB 5.5 – a branch of MySQL with evolutionary and revolutionary changes”

Sergei Petrunia – DevConf 2012 2012-06-09

Improving MySQL/MariaDB query performance through optimizer tuning

Sergei Petrunia, Timour Katchaounov – Percona Live 2012 2012-04-10

Replication features of 2011: what they were, how to get and how to use them

Sergei Petrunia – FOSDEM 2012 MySQL Devroom 2012-02-07

MariaDB 5.3′s query optimizer: taking the dolphin to where he’s never been before

Sergei Petrunia – FOSDEM 2012 MySQL Devroom 2012-02-07

2011

Pluggable Authentication in MariaDB and MySQL

Sergei Golubchik -Percona Live MySQL Conference: London October 2011 - 2011-10-25

Subqueries to the People: MariaDB Making the Impossible Possible and the Slow Fast

Timour Katchaounov - O’Reilly MySQL Conference and Expo 2011 - 2011-04-14

State of MariaDB

Monty Widenius - O’Reilly MySQL Conference and Expo 2011 - 2011-04-13

Dynamic Columns

Monty Widenius and Sanja Byelkin - O’Reilly MySQL Conference and Expo 2011 - 2011-04-13

A Beginner’s Guide to MariaDB

Colin Charles - O’Reilly MySQL Conference and Expo 2011 - 2011-04-12

New query optimizer features in MariaDB

Sergey Petrunya - FOSDEM 2011 MySQL & Friends devroom

MariaDB相关的采访

February 2012

October 2011

September 2011

April 2011

February 2011

MariaDB Can’t Be Sold Like MySQL: Exclusive Interview by Swapnil Bhartiya. This is an interview featuring Rasmus Johansson, COO of Monty Program Ab and Colin Charles, Chief Evangelist of Monty Prograb Ab.

MariaDB相关视频

以下列出的是有关MariaDB的社区演讲和一切数据库服务器,包括特性、Aria存储引擎等相关的视频。

精选视频

其他视频

MariaDB相关文章

MariaDB相关的出版文章,以时间倒序的形式排列。

有趣的邮件列表主题

MariaDB幕后是谁?

MariaDB项目是原来MySQL®和Monty Program Ab创始人Michael “Monty” Widenius的点子。

核心团队由Monty Program Ab雇佣的开发人员、Monty Program一些合作伙伴和在MariaDB社区的人员组成。MariaDB是一批技术控,我们希望我们的核心成员反映这一点。

Monty Program Ab所担任的角色就是MariaDB项目的主管。Monty Program Ab同时也为保证MariaDB产品的高质量而负责。Monty Program Ab归属于其员工,其核心业务是开发和维护MariaDB。

最新列出的活跃核心贡献者(maria-captains)可以在Launchpad开放平台上找到。任何拥有足够的技能技术水平和愿意积极参与MariaDB开发的人都可以成为团队的一员。您不需要在Monty Program Ab公司工作也能参与或提交代码!

MariaDB周围有一个活跃的社区您可以成为其中的一员。开发人员的贡献可以在MariaDB贡献者日志列表中找到。

Monty:

这里可能会有些疑问,MariaDB是一个公司的还是一个社区的开源项目。在Monty Program Ab,我们把MariaDB看做一个社区的开源项目,因为:

  • 所有MariaDB代码都是开源的,Monty Program Ab不打算发布任何闭源模块的代码给MariaDB,可见我们对社区的承诺
  • 那些符合MariaDB核心贡献者标准的人才拥有提交源码到MariaDB代码库的权利。他们中有很多人是Monty Program Ab公司之外的人员
  • 任何人都可以贡献文章到askmonty.org知识库,这里限制很少。
  • Monty Program Ab拥有MariaDB商标,但我们准备把广泛的权力给别人。我们正在研究一种公共商标政策,并且它将不久就会发布。

就像之前别人所评论的,相比于其他从事MariaDB工作的个体,askmonty.orgmariadb.org确实包含更多有关Monty Program Ab的信息。这就是可以预期只有Monty Program Ab对于这些网站是最积极的贡献者,因为它相对于其它的个体,更容易写有关对我们所做的事和知道的事的信息,我们不可能有无限的资源来做所有的事情。随着时间的流逝,更多的人开始为MariaDB贡献,这将会改变。

贡献于MariaDB 项目

为什么贡献?

MariaDB的成功取决于社区的参与。没有整个MariaDB社区参与,MariaDB不会有今天一样好。

入门指南

有几种方法可以贡献,并不是所有这些都需要强大的C/C++技能。非开发人员领域包括:

对知识库的贡献是帮助改善MariaDB一个很好的方式。

MariaDB邮件列表

开始MariaDB的一个很好方法是通过我们的Launchpad列表参与电子邮件讨论 (您感兴趣的任何列表):

您可以找到与MariaDB人联系的途径和额外的电子邮件地址,归档电子邮件。

所有MariaDB贡献者被期望遵循Ubuntu的行为准则

开发人员入门

有几个原因为什么贡献代码是有助于MariaDB的最简单、最有益的方法之一:

  1. 我们非常积极的审核提交的代码,并尽快复审完毕,把提交的代码合并到一个现有MariaDB树并提供给每个人,不只是客户。
  2. 代码审查是由MariaDB的核心开发团队执行的,质量、细节、和审查及时性比您在其他地方都应该要好。
  3. 每个人都可以访问MariaDB最新的代码。
  4. 如果一个补丁是非常安全的和/或非常有用,我们乐意把它推进到稳定的代码(只要它不破任何现有的应用程序)。我们乐意这样做,以确保在一个稳定版本需要修复的自由非常小,这样,用户对他们的业务来说添加最重要的东西就不需要等待一年。
  5. 如果您是一个活跃的贡献者,您可以成为Maria核心开发者中的一员,即使您不为Monty Program Ab工作。所有Monty Program Ab核心开发者和其他核心开发者有同样的权限接受和拒绝补丁。我们的发展模式是对每个人真正的开放。

贡献代码页详细说明了MariaDB源代码工作的很多实际步骤。重要的是您使用相同的工具和其他开发人员以同样的方式提交补丁,使其发展运行保持平稳。

对开发人员的期望

不只是接受任何代码到MariaDB,在一般情况下,我们期望您贡献任何代码:

  • 是精简的、模块化的、高效的、易读,并认为没有bug。
  • 至少有一位maria-captain审核过。
  • 遵循MariaDB编码标准。
  • 不包含我们已经有了重复的代码/特性。
  • 提供MariaDB一个新的价值使大量用户获益。
  • 没有破坏任何原有MySQL/MariaDB的用户。
  • 不阻止任何人实现另一个重要特性。

个人观点,我们希望您:

  • 遵循Ubuntu的行为准则
  • 参与电子邮件讨论通过我们的Launchpad列表(哪个列表是最合适的):
  • Launchpad作为Maria开发者注册一个账号
  • 保持一个积极、富有成效、轻松的态度。开发人员暂时撤退优雅地确保真正的生产力在我们的社区是被理解的。尤其是优雅。
  • maria-captains沟通,使您的代码被批准。
  • 提交您已认可的代码给审阅您的captain或发送电子邮件到给他。
  • 获得您提交的代码所有权,作为一个整体和与其他代码的所有者互动。这意味着您应该:
    • 修复您的代码bug
    • 审核、批准或应用其他人的代码到您自己的代码版本。
    • 对想和讨论您代码的人有用。
    • 帮助升级您的代码,当MariaDB升级到下一个版本。

如果您不能或不愿意遵循上述期望,那么maria-captains,或Monty Program Ab,将寻找其他人接管您代码的所有权。

代码许可

类似于其他开源项目,Monty Program Ab需要有一个共享代码的所有权,它被包含在MariaDB发行版中。这可以通过在BSD-new许可下提交您的代码。目前所知的唯一例外是存储引擎和通过插件加载的代码,对于这些,代码是GPL许可足够。

如果您想在一个许可证但不是BSD-new下提交代码,请电邮Monty项目贡献者协议

开发人员在哪?

  • 大多数核心开发人员会在freenode IRC的#maria频道上出没。
  • 代码、建议、和特性需求被发送到(和讨论) maria-developers列表。

开发建议

如果您想贡献于MariaDB但有疑问能做什么,这个页面列出了可能的项目。这个项目挑选为

  • 被认为是需要/相关的特性 (因此,MariaDB乐意接受代码进入)
  • 不需要实现者工作在代码的“困难”部分和/或高风险变化的特性可能会被拒绝,因为担心他们破坏代码库

这个列表不完整。如果您有一个想法,请在邮件列表/IRC咨询。

ALTER TABLE…ADD INDEX进展报告

  • 描述:MariaDB支持DDL语句期间进展报告。在某些场景中,进展报告实际工作了。在其它 (ALTER TABLE…ADD INDEX是其中最重要的)地方它还未实施。这个任务是将进展报告声明放在代码中适当的位置,以便ALTER TABLE…ADD INDEX 提供一些线索,这一部分工作已经做/还没做。进度报告页面有一节提供线索什么样的语句将需要被插入进展报告。寻找把它们放在哪儿留给实现将作为练习:)
  • 背景知识:C, C++
  • 导师:Sergei Petrunia
  • 实现者: Perry Huang

报告插件错误

  • 描述:实现一个错误报告插件服务。这是一组函数,允许插件有自己的errmsg.sys文件,输出错误消息到错误日志或用户。细节参见http://forge.mysql.com/worklog/task.php?id=2940
  • 背景知识:C, C++
  • 导师:Sergei Golubchik

正则表达式增强

  • 描述:MySQL和MariaDB用一个旧正则表达式库,它的工作原理bytewise,因此只支持一个字节字符集。它需要被替换为一个现代的多字节字符集正则表达式库。另外一个更要求可以实现REGEX_REPLACE函数。
  • 知识背景 required:C, C++
  • 导师:Sergei Golubchik

扩展perror了解服务器错误

  • 描述:perror的工具用于打印文本消息对应于一个错误号。它有一个硬编码的错误号和错误消息列表。它需要固定阅读errmsg.sys文件,就像服务器那样
  • 背景知识:C
  • 导师:Sergei Golubchik

LDAP身份验证插件

  • 描述:一个MySQL/MariaDB的身份验证插件,该插件利用LDAP进行用户验证。
  • 背景知识:C,熟悉LDAP
  • 导师:Sergei Golubchik

MacOSX安装程序

  • 描述:为MariaDB创建一个MacOSX安装程序。使构建脚本的工作和BuildBot整合,这样我们能自动为MacOSX构建MariaDB。
  • 背景知识:苹果工具链,GNU工具链的知识,有用的PackageMaker知识,如一些Perl知识,了解shell脚本。
  • 导师:Colin Charles

Linux包发行版

  • 描述:为所有主要发行版创建软件包。这包括遵循包装向导为Fedora、OpenSUSE等创建RPM specfiles;遵循包装向导为Debian/Ubuntu创建DEBs;*BSD的、OSX port文件等。其目标是在不同发行版与其他项目有效成为MariaDB的维护者。
  • 背景知识:Shell 脚本灵活应用,理解Makefiles,其他的构建系统等。
  • 导师:Colin Charles

MariaDB管理控制台snapin和WMIProvider(Windows)

  • 描述:自从Windows 2000在Windows微软管理控制台实现标准/推荐/集成解决方案的软件管理工具。另一个系统的机制称为WMI(Windows管理器)增加远程管理软件的能力。在MariaDB,我们想有一个管理控制台来处理不同的数据库实例—创建/删除/更新/启动/停止服务,显示和分析MariaDB错误日志、修改配置参数。它应该能够使用本地数据库实例,如同使用WMI远程的一样。这个任务将实现WMI provider和MMC snapin。
  • 背景知识:C++/COM or .NET, WMI, MMC. Powershell knowlegde is a plus.
  • 导师:Vladislav Vaintroub

贡献代码

这个页面包含贡献代码的通用指南和步骤。如果您有任何问题,我们邀请您去maria-developers邮件列表或在FreenodeIRC#Maria频道咨询。其他的邮件列表和能找到MariaDB的地方可以在这里找到

有关贡献MariaDB的通用信息 (为开发人员和非开发人员)可以在贡献MariaDB项目页面找到。

寻找开发项目的工作

MariaDB有很多开放开发项目可以贡献(除了您自己的任何想法)。

  • 我们使用JIRA来管理MariaDB项目。访问http://mariadb.org/jira并单击“项目”获得MariaDB项目。看未分配和未解决的问题是否有您感兴趣的。有些问题有赞助商,您做它们会有回报!
  • 检查对MariaDB下一版本发展计划。当前的一个是10.x的计划
  • 加入maria-developers和写信到maria-developers at lists.launchpad.net邮件列表并征求您可以做的任务意见。请把您的编程经验和MariaDB源码的知识及使用MySQL/ MariaDB的经验包含在电子邮件,以便我们建议您领取哪些任务。
  • 如果这是您的第一个项目,仔细查看开发建议页面。它列出的项目将是一个良好的开始。
  • 加入Freenode IRC 的irc:irc.freenode.net/maria征求意见

如果您有自己的想法,请提交到JIRA,以便其他MariaDB开发者在评论中给您建议怎么去实施它,当然,你也可以通过maria-developers提交。

先决条件

您需要Bazaar控制版本。

bzr登录设置

  • https://launchpad.net/+login获得一个Launchpad账户
  • 登录,设置您的SSH密钥
    • 点击您的名字(右上角)
    • 点击更改细节链接(右上)
    • 点击SSH密钥按钮(中间的页面)
    • 上传您的公共SSH密钥(我怎么得到一个公钥?)
  • 用您的本地命令行bzr launchpad-login [yourloginid]在launchpad注册

获取Maria代码

  1. 首先,得到一个干净的MariaDB代码副本(对于一些人来说,启动并运行最快的方式是按照”Source Tree Tarball”小节的说明)。
  2. 一旦您有了一个干净源码副本, 为您的更改创建一个工作副本:

cd $maria-repo # ex: ~/repos/maria

bzr branch trunk maria-fix-bugNNNNNN

cd maria-fix-bugNNNNNN

提示:使用描述性名称如maria-fix-bugNNNNNN(NNNNNN当然是bug #)。

  1. 您现在应该准备编译MariaDB。在这个阶段编译是一个好注意。在您做任何修改之前,确认您拉取的源码树是可用的。

下面的页面将帮助您运行和使用MariaDB的源代码:

设置测试

Maria的测试套件中包含在源代码树的./mysql-test/子目录。在mysql-test目录有两个子目录值得您最大限度的关注,bug修复器:t/目录和r/目录(分别是“测试”和“结果”)。一定要检查,看看您的bug是否已经测试过。

所有的测试在t/目录都能找到。打开您正在改变功能相对应的文件(或添加一个新文件)和添加命令,将重现这个bug或验证新功能。

例如,测试下面创建一个新的测试表“t1”;向我们展示CREATE TABLE 语句的结果;最后,我们通过删除测试表来清理测试:

#

# Bug #XXXXXX: INET_ATON() returns signed, not unsigned

#

create table t1 select INET_ATON(’255.255.0.1′) as `a`;

show create table t1;

drop table t1;

首先通过添加您的测试,随后它会提醒您重新记录测试输出文件(当然包含随后的预期结果)。现在是让您更改的时候。

检查现有的测试,以便更好地了解应该如何编写测试。

我们总是在寻找更好的测试,所以如果您创建新的测试或改进现有的测试,请上传到我们FTP服务器的“private”文件夹,然后在IRC通知我们或发送一个便条到maria-developers邮件列表,以便让我们知道它。

编辑和添加到您的贡献

有一个正工作的版本,您可以开始改变您的新分支,定期提交代码到您的本地工作副本;经常尽早提交和固化您的贡献。

cd $maria-repo/maria-fix-bugNNNNNN

# Make Changes

bzr commit -m “Merge comment”

在发布您完成的工作之前,您需要确认您的分支按预期工作和试运行更新。

要让别人看到您的提交,您应该配置bzr发送其提交的电子邮件到commits@mariadb.org邮件列表。

测试您的分支

确保您至少有libtool 1 .5. 22(在这里找到)。

首先,请确保所有的测试都通过(记得此测试您早些时候设置了吗?它应该会失败。没关系,您暂时地重复记录它):

cd $maria-repo/mysql-test

./mysql-test-run

所有失败需要重新记录。

cd $maria-repo/mysql-test

./mysql-test-run –record $test # where $test is the name of the test that failed

您现在准备好合并到主干。

合并最近的更改

在推出和发布之前,重要的是合并主干任何变更进入您的分支。

更新您的本地主干。

cd $maria-repo

cd trunk

bzr pull

更新您的本地分支。

cd $maria-repo

cd maria-fix-bugNNNNNN

bzr merge ../trunk

bzr commit -m “Merged from trunk”

在bazaar可以通过下面解决冲突:

bzr resolve $filename

使您的分支回到您最后提交的地方使用:

bzr revert $filename

(注意:在推出之前,您将需要再合并到主干)

仔细核实差异: bzr diff

发布您的分支

当所有的更改都合并了,您的更改都是一致的,您可以把您的分支推到LaunchPad

cd $maria-repos/$your-branch # where $your-branch is the branch you want to push (ex: maria-bugNNNN)

bzr push lp:~[yourloginid]/maria/$your-branch

如果您发现这要花很长时间(如大于30分钟),您可能想尝试使用’bzr init-repo –format=1.9′来初始化一个新的repo和合入您的代码,然后再推出。

提出分支

在您的launchpad代码页https://code.launchpad.net/ ~ { yourloginid }/maria/{branch-name}单击提出合并到另一个分支的链接到提出分支的维护者合并到主干。

如果您想要的代码成为主要MariaDB树的一部分,您还必须给Monty Program Ab共享您的代码版权。您可以选择以下方式之一:

  1. 签署Monty项目贡献者协议(MCA),然后扫描,并将其发送给我们。
  2. 发送电子邮件到maria-developers,您的补丁和修复在MCA下提供给Monty Program Ab。
  3. 使用BSD license许可代码。

MCA更多的信息可以在MCA FAQ页面找到。

修复分支(如果需要)

如果您的分支需要修复。您将需要:修改,重新合并任何新变化到主干,提交和再推出;您不需要重新提出分支。推出之后,LaunchPad会自动接受更改。

请注意,LaunchPad合并您的新变化到您的分支可能花几分钟。

重新提交

目前,这是一个复杂的过程,没有“请求另一个审核”链接工作。

重新提交一个合并,遵循这些步骤:在合并的主页上,上面将会有像“状态:需要审核”。右边有一个小按钮,点击这个来改变状态。从下拉菜单选择“重新提交”,然后单击“改变现状”。接下来的页面应该提示您重新提交合并和通知您新的将取代旧的;单击“重新提交”来完成。

几个简单的方法可以使您关注您提出的合并是:

  • 加入在freenode上#MariaIRC频道要求人们审核/讨论您的合并。

订阅和发送电子邮件到Launchpad的maria-developers小组。

MariaDB的其他用户和开发者在哪里?

MariaDB项目托管在Launchpad。入门的一个好方法是加入到Launchpad的一个邮件组:

在这些组的成员允许订阅相关的邮件列表。在maria-captains的成员还允许提交到官方MariaDB源代码树。

提交的电子邮件发送到commits@mariadb.org。任何人都可以订阅提交的电子邮件或检查提交存档

MariaDB背后核心开发者是maria-captains。他们可以在Launchpad找到。任何拥有足够的技术技能水平愿意积极参与MariaDB开发的人都可以成为团队中的一员。

如果您只是想跟上最新的新闻,就像新MariaDB版本发布,您应该订阅announce@mariadb.org公告列表(这是一个低流量,、只公告的列表)。您还可以检查公告存档

您还可以与MariaDB的其他用户和开发者在IRC交流。

您还可以在大多数开源会议找到很多MariaDB人员,像O’Reilly MySQL conferenceOSCONOpen Source bridge。参与来自Monty Program Ab的由MariaDB开发者出席的会议列表。

如果您有一个新特性需求,您可以记录到工作日志Worklog。如果您准备支付此新特性,您可以联系Monty Program Ab获取报价。

MariaDB的知识库既是一个手册,也是FAQ,在这里您可以对具体MariaDB/MySQL特性提问和回答。

Maria项目的官方IRC频道在Freenode上的IRC:irc.freenode.net/maria。频道irc:irc.freenode.net/maria-meeting用于官方会议。从用户利益考虑,我们不希望有一个与开发人员分开的频道。用户时刻要求保持他们的最佳利益,这样在我们的大集体里可以与忙碌的开发人员随时保持沟通。

参阅:

Knowledgebase User Contribution Statistics

MariaDB的贡献日志

默认为每个贡献给bzr增加如下全局评论:

Patch:    Name, url or from where we got the patch

Author:   ….

License:  MCA or BSD

Reviewer: ….

对于下面情况下不这么做,对每个推进MariaDB代码不属于Monty Program Ab的贡献者添加到这个页面一短行。这目的就是为所有这些提交的补丁要么在MCA或BSD-new,确保开发人员得到他工作的赞誉留下足迹。

例如:

Feature/Patch name

* Author(s)

* Author has signed MCA on “date” | Patch was licensed under BSD

(请增强有意义的例子)

MariaDB 5.1的贡献日志(Monty Program Ab之外的)

微秒级精度进程列表

慢日志扩展统计

PBXT存储引擎

FederatedX存储引擎的

  • Patrik Galbraight和Antony Curtis修改,所有都适用BSD-new许可。
  • 此外,我们被允许促进FederatedX。

Windows增强和各种bug修复

  • Alex Budovski, under MCA

 MariaDB的包创建

  • Arjen Lenz

修复多处的bug

  • Stewart Smith

MariaDB 5.2的贡献日志

虚拟列

声明许多字符集对象作为常量。

l   Antony T Curtis, under BSD.

扩展用户统计

  • Authors: People at Google, Facebook and Percona. This code owns a special thanks to Mark Callaghan!
  • BSD许可

MyISAM键分段缓存

  • Fredrik Nylander from Stardoll.com, under MCA

OQGRAPH存储引擎

Sphinx存储引擎

可插接式验证

  • RJ Silk, under MCA

捐赠

帮助我们也即帮助您们

MariaDB是一个由社区开发的项目,Monty Program Ab为主要驱动者。Monty Program Ab和maria-captains一起负责MariaD源码树的所有高质量代码,定期发布MariaDB版本。

然而Monty Program Ab需要贡献者和资金才能够做到这一点。您可以通过以下任何方法帮助我们。

  1. 从Monty Program Ab买扩展/优化/新特性/bug修复/支持MariaDB/MySQL
  2. 为您所需要的功能付款,那些列在工作日志
  3. 添加新的有趣的任务到工作日志,您想要解决并且您想掏多少钱去做。
  4. 加入 MariaDB community和帮助我们开发MariaDB。
  5. 通过volunteering to run a build slave,捐赠空闲CPU。
  6. 给我们提供机器建立我们尚不支持的平台。(如果您有兴趣做这个,使用下面的捐赠按钮,发送电子邮件到askmonty.org)
  7. 让您的员工花部分工作时间在MariaDB上。

列在工作日志的项目也可以由Monty Program Ab以外的人开发。如果项目完成,交付MariaDB并被接纳,大部分的钱将捐赠给开发人员。如果您有兴趣参与工作日志的事情,请通过在“askmonty.org的maria-developers” 或“ 销售”联系我们。

请帮助我们也即帮助您们!

注意,捐款是由Monty Program Ab管理。捐款的全额纯粹用在支持MariaDB产品的地方。

赞助和捐赠

我们相信支持我们使用的产品和和我们合作的项目。

Monty Program Ab和Monty正在帮助和捐款的以下项目:

注意,捐款是由Monty Program Ab管理。捐款的全额纯粹用在支持MariaDB产品。

开放工作

这是一个开放的部分,任何人都可以为有MariaDB/MySQL工作经验的人提供工作岗位。

规则是:

  • 保持工作提供方式简单(一行和链接)
  • 将它添加在正确的文章最后
  • 不要编辑/改变他人的链接
  • 当您找到有人来完成工作,删除您的链接

发布一份工作,在这篇文章做一个注释,我们将确保它在正确的地方。一旦我们得到系统完成的知识库的许可,您将能够管理自己的链接。

注意,这不是一个替代开源工作搜索网站像Linux Lancers,但对公司来说给一些额外的可见性。可以为从事MariaDB/MySQL的人提供一个好的工作。

MariaDB 开发者

寻找MariaDB/MySQL开发人员的公司

InnoDB专家

Monty Program Ab:一位经验丰富的InnoDB®存储引擎开发人员将成为我们的核心工程团队一员(全球)

MariaDB核心开发人员

Monty Program Ab:深刻理解MySQL®和Aria代码库的开发人员 (全球)

软件架构师

寻找软件架构师的公司:

DealDash Oy, Helsinki, Finland:软件架构师来驱动我们有数以百万计的用户的web应用程序发展。

文档作者

寻找文档作者的企业:

Monty Program Ab:一个深刻理解MySQL®的、从事知识库工作的文案作者。

基准测试/QA工程师

寻找基准测试和QA工程师的公司

基准测试和QA

Monty Program Ab:一位数据库服务器基准测试和QA专家(全球)

评论

您好团队,

我想成为mAriaDB的基准测试一员。我曾经使用TPC-E,sysbench,DBT-2基准工具测试了MariaDB和MariaDB NDB。如有考虑,请发邮件给我rk.thunderboy@gmail.com。

感谢,Rk.Thunderboy

报告bugs

这个页面包含报告MariaDB bugs的通用指南。

如果您想与其他MariaDB开发者讨论一个问题或一个新特性,您在这里可以找到邮件列表和论坛。

bug是已知的吗?

首先,检查bug并不是已经存在MariaDB bugs数据库MySQL bugs数据库(如果一个bug在MySQL bug数据库,它不需要提交到MariaDB bug数据库)。

如果您在任一bug数据库找到bug,请添加影响您bug的注释和任何额外的信息,可以帮助我们找到并修复bug。

如果bugs没有被报告在其他地方,那么是时候提交bug报告了。

是Bug报告还是特性需求?

特性需求和bug报告是不一样的。使用JIRA提交特性需求。

我们在MariaDB下一个发行版正考虑有什么,参照:下一个发行版计划

如何报告bug?

报告简单的bug最简单的方法使用mysqlbug脚本,该脚本随MariaDB一起安装。它通常位于bin /或scripts/目录。只是启动脚本,回答问题和发送bug。(它将被发送到maria-developers launchpad.net列表)。

对于越复杂的错误,这是我们能够很快修复它需要的信息。我们得到的信息越多,越容易复现这个bug,修复它的速度也就越快。

一个好的bug报告包括:

  1. 发生错误环境(操作系统、硬件和MariaDB版本)。
  2. 来自主机名.err文件的任何相的错误或警告。这通常是在您的数据库目录。
  3. 可以提供任何背景信息 (堆栈跟踪,表)
  4. 一个测试用例或者其他方式复现此bug。这最好是用mysqltest格式。相关的信息参阅mysqltest / README
  5. 如果您不可能去做一个测试用例,可以给我们提供了一个core dump+相应的二进制文件将会有巨大的帮助。

如果错误只会影响MariaDB,您可以发送bug到MariaDB bugs数据库

如果它还影响MySQL,那么您也应该发送bug到MySQL bugs数据库

Bug状态

aunchpad,bug有不同的状态为:

状态

描述

Incomplete

我们对如何修复bug需要更多的信息

Invalid

不是bug(特性请求吗?)

Won’t Fix

bug或特性,我们不打算修复

In Progress

开发人员正在积极地解决它

Fix Committed

修复已经提交到主分支

Fix Released

修复已经提交到主分支

修复bug正常流程如下:

“In Progress” -> “Fix Released”

开发人员想要区分主分支和发布二进制文件,可以使用:

“In Progress” -> “Fix Committed” -> “Fix Released”

然而在此种情况下,当发布二进制文件后,开发人员需要确保旧的信息更新了。

如何构建一个MariaDB服务器,包含其中调试信息

以下是有关如何构建一个包含我们解决这个问题需要所有信息的mysqld:(更详细的解释可以在这里找到。)

  • 添加–core选项到您的/.my.cnf或/etc/my.cnf的[mysqld]标签下。
  • 用bzr获取最新MariaDB代码
  • 用g编译器标志(Unix)编译MariaDB。脚本在BUILD目录中为您自动编译。
  • 关闭您旧的mysqld服务器
  • 安装新编译mysqld
  • 重启mysqld

用-g编译应该不会引起服务器显著变慢。

做一个调试版本的示例

下面是一个示例如何编译(假设您使用的是AMD或Intel硬件)

cd mariadb-source-dir

./BUILD/compile-pentium-max

make

./client/mysqladmin shutdown

mv mariadb-install-dir/mysqld mariadb-install-dir/mysqld-old

cp sql/mysqld mariadb-install-dir/mysqld

‘restart mysqld’

您当然也可以make install,但是上面的方法可以让您回到旧的二进制版本,如果需要。

如果您遇到有关任何错误消息的错误码,您可以通过从sql /share复制相应的语言文件覆盖您旧的来修复这个问题(这应该是相当安全的)。

cp sql/share/english/* mariadb-install-dir/share/mysql/english

安装调试版本二进制后,发生崩溃该怎么办

如果您遇到一个崩溃,可以做以下几点:

  • 创建一个README文件,描述这个问题。(您可以使用mysqlbug脚本生成一个模板)。
  • 创建一个tar文件包含内核信息,mysqld二进制和README。如果可能的话,同事添加任何可以帮助我们复现这个问题的数据库文件!

sh> tar cvfz /tmp/mariadb-bug-’short-description’.tgz mariadb-data-dir/core*  mariadb-install-dir/libexec/mysqld README

  • 发送到我们的安全服务器(私有目录并不能被Monty Program Ab以外的人访问)

sh> ftp -a ftp.askmonty.org

ftp> cd private

ftp> binary

ftp> put /tmp/mariadb-bug-’short-description’.tgz

ftp> quit

  • 按照这些步骤可以在Launchpad平台上创建一个bug报告。基于您的README文件的信息这应该很容易做到。

如果对上面的内容,您需要帮助,要确保bug修复具很高优先权的,或者想要有人来登录到您的服务器来找出什么错误,您可以从Monty Program购买一个支持合同或使用他们的咨询服务。

成为Maria-captain标准什么是?

MariaDB captain责任是:

  • 开发和关注MariaDB项目。
  • 修复您已经开发的或有责任的代码中bug。
  • 评审代码并回答提交到mariadb-developers列表有关MariaDB的问题。
  • 积极工作,和同其他maria-captain创造一个更好的MariaDB经验。

成为一个MariaDB captain主要的标准是:

  • 遵循MariaDB开发者的指导方针,如何这样做得规范。
  • 为提交的代码获得批准讨论并寻求共识。
  • 很好的理解MariaDB的代码,这样您就可以执行周到的评论。
  • 了解什么时候可以推进MariaDB树。这部分是主观的。
  • 信任其他MariaDB captains。我们争取成为技术官僚,而不是一个小团体。

成为Maria captain,您不必在Monty Program Ab工作!MariaDB是一个开放源代码项目和可供任何人参与。

当您认为您准备好了,您可以成为MariaDB captains一员和问他/她的请求其他MariaDB captains考虑您成为MariaDB captain。captains投票批准/反对您,您就会被告知结果。

MariaDB使用什么许可证?

MariaDB在GPL v2许可条款下可用,就像MySQL。

有一部分代码使用BSD许可或者是公共领域。细节参照头文件。

我们正在创建一个LGPL的C客户端库,该库将二进制兼容目前的一个。同时您在这里可以找到旧客户端LGPL库。

如果您想成为MariaDB社区的一员和捐赠代码到MariaDB项目,那么您需要在BSD-NEW许可下把代码给到项目或签署并发邮件到Monty项目贡献者协议。其原因是我们希望能够把代码给他人,可能在GPL下无法使用代码,例如在Oracle的MySQL项目。

MariaDB设置和使用Bazaar(bzr)

如何使用bzr的技巧,MariaDB和MySQL使用的源代码控制系统。

6.13.1:获取 MariaDB源代码

这个页面的说明将帮助你下载所有修订历史的MariaDB源代码库。如果你想要一个没有修订历史源代码的tar包,参照MariaDB download page.

用Bazaar 检查源代码

先决条件

版本控制需要Bazaar

说明

  1. 准备一个目录来保存你的MariaDB代码:

mkdir $repo# where $repo is some directory (ex: ~/repos)

cd $repo

bzr init-repo maria –format=2a # this creates ~/repos/maria

  1. 得到一个干净的Maria repo本地副本:

cd $maria-repo # (ex: ~/repos/maria)

bzr branch lp:maria trunk

上面命令会获得最新MariaDB的稳定版本。如果你想获得其他分发版本,去Launchpad选择“代码”,使用lp:maria/5/2,lp:maria/5.3…,依次得到完整的版本清单。

  1. 如果你得到一个错误,如:

bzr: ERROR: Unknown repository format: ‘Bazaar RepositoryFormatKnitPack6 (bzr 1.9)’

您正在使用的bzr版本太老了。使用版本1.12或更高版本将会修复这个错误。

  1. 如果您有已经升级您的bzr,也无法从launchpad成功分支,尝试使用源代码树tarball代

替。

  1. 您可以看到当前的修订历史:

cd $maria-repo/trunk

bzr log | less

  1. 如果您对修改MariaDB源代码感兴趣。获得帮助参阅: Contributing Code.
  2. 如果在这一点上你只是想编译MariaDB,参阅:Compiling MariaDB .

Tarball源码树

由于Launchpad有问题的MariaDB分支,我们创建了一个MariaDB源码树完整的tarball存储库。

先决条件

你需要Bazaar和存储库一起使用。

使用Tarball源码树

  1. 一个MariaDB镜像下载mariadb-shared-repo.tgz文件。
  • 该文件是292 MB,因此下载可能需要很长时间才能完成,取决于你的互联网速度。
  1. 这个.tgz文件包含一个.bzr目录。.bzr目录的父目录(或变成)一个共享库包含MariaDB源代码。建议创建一个新目录,那么接下来的一步是为存储库创建一个目录。将这个目录命名为你喜欢的任何名字(“maria”,“mariadb”,“my”,“src”,等等……)。一旦创建,cd到目录和解压文件。下面是一个示例,使用“mariadb”为新目录名字,该目录位于当前用户的home目录的“src”目录下,并且mariadb-shared-repo.tgz文件位于Downloads目录下(也在当前用户的home目录):

mariadbdir=”mariadb”

downloadsdir=”${HOME}/Downloads”

sourcecodedir=”${HOME}/src”

cd ${sourcecodedir}

mkdir ${mariadbdir}

cd ${mariadbdir}

tar -zxvf ${downloadsdir}/mariadb-shared-repo.tgz

  1. 解压后,你将有一个bzr共享存储库,但不是一个工作代码树。而在共享库目录,使用bzr branch命令来分支你有兴趣的MariaDB代码树。例如:
  • bzr branch lp:maria/5.2
  • bzr branch lp:maria
  1. 多亏了存储库,上述命令将完成的非常快.
  2. 使用代码之前,确保你拉取了最新版本的源代码:

cd mariadb-5.2           #or to wherever your MariaDB tree is

bzr pull

  1. 现在您可以使用这个源码树,好像是从launchpad直接分支的。

 

评论

what am I doing wrong ?                      petepdx

作为mysql用户所有事情都完成的

bzr branch lp:maria trunk

然后

./BUILD//compile-pentium64-max

make install

./bin/mysqld_safe –user=mysql

110707 15:13:09 mysqld_safe Logging to ‘/data1/mariadb/bts-info.rose.portland.local.err’.

110707 15:13:09 mysqld_safe Starting mysqld daemon with databases from /data1/mariadb

110707 15:13:09 mysqld_safe mysqld from pid file /data1/mariadb/bts-info.rose.portland.local.pid ended

cat bts-info.rose.portland.local.err

110707 15:13:09 mysqld_safe Starting mysqld daemon with databases from /data1/mariadb

110707 15:13:09 [Note] PrimeBase XT (PBXT) Engine 1.0.11-7 Pre-GA loaded…

110707 15:13:09 [Note] Paul McCullagh, PrimeBase Technologies GmbH, http://www.primebase.org

InnoDB: The InnoDB memory heap is disabled

InnoDB: Mutexes and rw_locks use GCC atomic builtins

InnoDB: Compressed tables use zlib 1.2.3

110707 15:13:09  InnoDB: Initializing buffer pool, size = 128.0M

110707 15:13:09  InnoDB: Completed initialization of buffer pool

110707 15:13:09  InnoDB: highest supported file format is Barracuda.

110707 15:13:09 Percona XtraDB (http://www.percona.com) 1.0.15-12.7 started; log sequence number 45356

110707 15:13:09 [ERROR] Can’t open the mysql.plugin table. Please run mysql_upgrade to create it.

110707 15:13:09 [Note] Recovering after a crash using mysql-bin

110707 15:13:09 [Note] Starting crash recovery…

110707 15:13:09 [Note] Crash recovery finished.

110707 15:13:09 [ERROR] Fatal error: Can’t open and lock privilege tables: Table ‘mysql.host’ doesn’t exist

110707 15:13:09 mysqld_safe mysqld from pid file /data1/mariadb/bts-info.rose.portland.local.pid ended

Re: what am I doing wrong ?                         dbart

运行make install后,开始MariaDB之前,你运行mysql_install_db脚本了吗?从错误看起来有些东西找不到了。

查看更多细节参照:Generic Build Instructions

您可以参照: Running MariaDB from the Source Directory

Re: Getting the MariaDB Source Code                     petepdx

shell变量$repo和$maria还没有设置

Re: Getting the MariaDB Source Code                 dbart

他们只是占位符,不管你想要填写什么。.

Re: Getting the MariaDB Source Code                     petepdx

cd mariadb-5.2

这个目录不存在

Re: Getting the MariaDB Source Code                      dbart

这只是一个示例目录。关键是要cd到你本地的MariaDB源代码目录并执行一个bzr命令更新之前的代码。我添加了一个注释来更好地表明这个。

谢谢!

设置bzr发送邮件

提交的MariaDB电子邮件被发送到commits@mariab.org。您可以在这里找到归档。

要让别人知道您在MariaDB树目录正从事什么,您应该:

  1. 订阅邮件列表
  2. 配置bzr发送您的提交到commits@mariab.org

首先添加您的电子邮件地址到您的/.bazaar/bazaar.conf文件:

[DEFAULT]

email = ‘Your name <name@location.com>’

然后您必须告诉bzr发送提交的电子邮件到哪个树目录下。这是类似以下方式通过添加您的信息到/.bazaar/locations.conf文件:

[/home/my/maria-5.1]

post_commit_to=commits@mariadb.org

post_commit_url=lp:maria/5.1

[/home/my/maria-5.2]

post_commit_to=commits@mariadb.org

post_commit_url=lp:maria/5.2

[/home/my/maria-5.3]

post_commit_to=commits@mariadb.org

post_commit_url=lp:maria/5.3

只是用完整.bzr树目录路径替换“/home/my”。

您还应该安装bzr-email插件更好的寻找提交的电子邮件。

如何获得bzr的更多信息(当工作在MariaDB)

我们(实际上Sergei) 在几个bzr的插件做了大量工作,尚未被bzr主树接受的:

  • bzr-email
    • 按单文件显示提交的电子邮件评论
    • 显示每个不同部分的函数名
  • bzr-gtk
    • 为在bzr gcommit的”bugs修复”提供一个域
    • 显示每个不同部分的函数名
    • bzr log –perfile按单个文件显示评论

这个插件是工作在bzr2.1及以后版本。

要启用这些做类似如下一些事情:

cd ~/.bazaar/plugins

bzr branch lp:~maria-captains/bzr-email/serg/ email

bzr branch lp:~maria-captains/bzr-gtk/serg gtk

或者,您可以安装所有插件:

cd /usr/local/bzr-plugins

bzr branch lp:~maria-captains/bzr-email/serg/ email

bzr branch lp:~maria-captains/bzr-gtk/serg gtk

cd ~/.bazaar/plugins

ln -s /usr/local/bzr-plugins/* .

配置插件(为了最有效的)

添加到您的~/.bazaar/bazaar.conf文件:

[[DEFAULT]]

post_commit_mailer = /usr/sbin/sendmail

post_commit_diffoptions = -utB -F ^[[:alpha:]$_].*[^:]$

post_commit_log_format = perfile

gdiff-diffoptions = -u -F ^[[:alpha:]$_].*[^:]

per_file_commits = on

bugs_fixed = on

[ALIASES]

diff = “diff –diff-options=’-F ^[[:alpha:]$_].*[^:]$’”

show = log -v -p –perfile -n0

使bzr在有差异的地方包括函数名

在所有bzr差别获取函数名(像diff – p),使用以下插件:

#!/usr/bin/env python

“”"diff -p everywhere”"”

version_info = (0, 0, 3)

from bzrlib import diff

from bzrlib.trace import mutter

old_init = diff.DiffText.__init__

def new_init(self, old_tree, new_tree, to_file, path_encoding=’utf-8′,

    old_label=”, new_label=”, differ=diff.internal_diff):

  if differ == diff.internal_diff:

    def diff_file(old_filename, oldlines, new_filename, newlines, to_file,

                  allow_binary=False, sequence_matcher=None, path_encoding=’utf8′):

        try:

          filename= old_filename[0:old_filename.rindex('t')]

          re = old_tree.iter_search_rules([filename], ['diff_show_function_regex'])

          diff.external_diff(old_filename, oldlines, new_filename,

              newlines, to_file, ['-F', re.next()[0][1]])

        except (ValueError, IndexError):

          mutter(“Failed to use diff_p for %s” % old_filename)

          diff.internal_diff(old_filename, oldlines, new_filename, newlines,

              to_file, allow_binary, sequence_matcher, path_encoding)

    differ = diff_file

  old_init(self, old_tree, new_tree, to_file, path_encoding,

      old_label, new_label, differ)

diff.DiffText.__init__ = new_init

把它放在~/.bazaar/plugins/diff_p/__init__.py文件。现在您可以配置diff函数正则表达式(为diff -F)单个文件类型使用标准bzr规则文件。参照bzr help rules。作为一个有用的起点,把这个放到~/.bazaar/rules文件:

[name *.py]

diff_show_function_regex = ^[[:space:]]*(def|class)[[:space:]]+

[name *]

diff_show_function_regex = ^[[:alpha:]$_].*[^:]$

品牌指南

字体:

  • MariaDB相关文本似乎默认选择Droid Sans
  • 商标的字体是STHeiti Regular。这个字体是不容易获得的。

支持MariaDB

这个页面官方列出了正式使用MariaDB的项目。如果您知道一个正式支持MariaDB的项目没有列在这里,请在回复中告诉我们。

注意: 我们知道每个项目适用于MySQL的也适用于MariaDB。这个页面仅仅列出正式支持MariaDB的项目(例如,在它们的文档中提及MariaDB或设置说明)。

评论

有些项目让他们开始需要推动。XMAPP通过apachefriends.org是LAMP的窗口。它使用和安装都很简单。让所有的LAMP站使用MariaDB将是有益的。

LAMP目标是主机托管公司提供MySQL作为标准实施。Bluehost、templemedia等数以百万计的托管网站使用,它会很快地传播MariaDB。

 

One thought on “MariaDB FAQ(Part 2)

  1. Pingback: MariaDB FAQ CN | MySQLOPS 数据库与运维自动化技术分享

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>