MariaDB FAQ(Part 4)

MariaDB开发的先决条件?

下载Mariadb源代码和开始开发的先决条件是什么?

参照: http://kb.askmonty.org/v/compiling-mariadb-from-source

在其它国家现状

MariaDB是否出现在印度或其他国家?如果没有,我有兴趣与MariaDB合作。我可以促进、支持和修复bug。

评论

Re: Presence In India

您想怎样帮助?商业伙伴吗?社区特使吗?

在您方便的时候 请给colin@montyprogram.com发送电子邮件。

Re: Presence In India

据我所知,您们有技术和战略合作伙伴、支持合作伙伴、专业服务和咨询业务合作伙伴。解释下社区特使这个角色。在我成为MariaDB/MySQL专家前,我肯定不能是支持、专业服务和咨询业务合作伙伴。我想是社区特使,我的使命是: 1)我们有权一起创造一个更好的世界。2)我们一起共同创造我们的生活。3)我们一起使MariaDB项目成功。我在寻找与MariaDB持久而卓有成效的合作。 1)为获取MariaDB技术的专业知识、功能和文化 2) 首先在著名工程和post degree collages、研究机构和技术精湛的组织传播MariaDB。3)组成一个小团队,致力于Mariadb项目。4)提供帮助以支持Mariadb升级数据库。5)鼓励人们在MariaDB上开发应用程序。6)成为MariaDB开发团队的一员来解决问题、bugs和新的增强/发布版本。7)联系想为开源社区捐赠的人/组织。8)首先提出我的想法才能得到社区批准和进一步深化这些想法。

MariaDB发布政策/时间表是什么样的?

未来MariaDB版本的计划链接MariaDB Development Plans。也可以参见release criteria

MariaDB 使用什么样许可证?

MariaDB像MySQL一样适用于GPL v2。

一部分的代码使用BSD许可或者是公共领域。具体看头文件。

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

如果您想成为MariaDB社区队员的一员和给MariaDB项目捐赠代码,那么您需要把代码以BSD-NEW许可给到项目或签名并邮件给MCA.。这样做的原因是,我们希望能够给无法使用在GPL下代码的人,例如在Oracle下的 MySQL项目。

什么工具可供开发MariaDB代码?

该代码托管在launchpad。您可以从那里获取最新分支的代码,您还可以将自己的更改作为一个新分支与其他人共享。推荐使用至少1.12版本的bzr修订控制系统(旧版本与在launchpad上发布的MariaDB代码树格式不兼容)。

从源代码构建代码都是通过标准的Unix工具:autotools,Gnu Make,GCC(或其他c/c++编译器在一些系统上)。在Windows上使用CMake和Visual Studio。

当前状态的源与构建/测试失败可以在buildbot中看到。

我们仍然在决定选择一个长期bug追踪器。目前使用Launchpad

对于项目管理,我们使用JIRA

如果您有兴趣,source页面有一个链接关于建立一个完整的开发环境的说明。

MariaDB什么版本是可以运行在Windows 7 x64?

答:

任何已发布的版本

然而MariaDB 5.2.5和更低版本全部是仅仅在Windows的32位系统编译。这些MariaDB版本如果运行在64位Windows上,但他们将会运行为32位进程。

MariaDB 5.2.6和更高版本有Windows64位二进制文件可用。64 位的二进制代码(和MSI包)也从源码建立,就和在 Building MariaDB on Windows的描述一样。

MariaDB的未来版本将会什么样的

您可以在MariaDB versus MySQL页面阅读MariaDB当前稳定版本的有关特性和改进。

MariaDB Development Plans页面链接介绍我们未来MariaDB版本的计划

什么时候支持事务型的全文索引?

这是真正急切等待的MariaDB特性! 有任何关于事务型Aria表支持全文索的想法吗?我们非常期待它! ! !

虽然我们打算使用Apache Solr实现搜索,但是很多情况下,在事务型表上的全文索引搜索将是非常不错的,它使我们的生活轻松多了。

评论

Re: When will transactional fulltext indexes be ready.

Aria已经支持全文索引并且是崩溃安全的 (任何更新过程中发生的崩溃将自动回滚)

尽管这和事务性不一样,这应该是Aria引擎能完全支持事务性一个好的开始(提供回滚命令)。

注意,全文索引和崩溃安全在Aria的测试不如像它其它的特性那样,所以如果您决定使用它,请从头至尾测试它们并给予反馈!

Re: When will transactional fulltext indexes be ready.

谢谢您的回答。频繁更新全文索引需要不断获得表锁,这是一个问题。

为了绕过这个问题:我们创建了每小时更新一次的重复表,并且将所有其他表转化为InnoDB,这样我们可以获得行级锁。最理想的是我们在有全文索引的表上更新获得行级锁。

我们这个周末将余留的MySQL转向Centos5和MariaDB 5.2系列。到目前为止还不错——系统更快,并使用更少的资源。

我们将用几星期试着把自己的MyISAM全文索引表转换成Aria。对于崩溃安全的系统它是值得的。而且我们将期待行级锁。事实上,行级锁是比事务性更重要。我不知道其他的客户也是这样想的,但是我们更想看到行或页锁。

顺便说下,我们感谢伟大的产品。我们感谢您们所做的工作,他们改变了我们,并且我们已经开始依赖科技。

MariaDB未来版本什么时候发行?

downloads页面中包含当前稳定版本和开发版本。

参阅MariaDB Development Plans页面以找到MrriaDB版本计划

MariaDB Aria客户端工具?

谁知道有好的GUI /Workbench工具来处理ARIA表的transactional = 1/0和row_format=PAGE情况吗?

有很多的GUI工具和MariaDB一起工作,比如Webyog/SQLyog,HeidiSQL,当然MySQL Workbench也是。

我们知道一些工具已经收到请求/或正在添加支持MariaDB和Aria-specific特性(例如SQLyog)。直到您的首选GUI工具直接支持MariaDB和Aria-specific特性,大多数工具提供一个用来编辑和执行自定义的SQL代码的机制。

评论

注意对于所有来到这个页面为寻找一个GUI工具的人:由于2011年10月23日, MySQL Workbench 5.2.35执行某些功能有严重的问题,比如在一个Aria表上“alter”,此表再也不能被读取,换一句话:“从DBMS 传回有一个解析错误的DDL。”

哪里下载MariaDB?

最新的包

Tarball、二进制(Linux,Solaris, Windows),部分Linux发行版的包在downloads.askmonty.org上都有。

我们希望有兴趣的community软件包维护人员可以站出来为他们的分发版构建软件包。我们要求严格遵守您系统的最优方法来构建包,如果我们的项目以任何方式阻碍这个,欢迎您的反馈

如何安装可以在这里找到。

附带MariaDB的分发版

   参阅: Distributions Which Include MariaDB

获取源码

     在our Launchpad repository上您可以找到所有的源代码

抽取或者提交代码,bzr (Bazaar)版本控制软件提供了一条阻力最小的路径。如果您不熟悉bzr,请参阅bzr文档来理解bzr版本控制。

有关创建您自己本地MariaDB分支的命令参照获取MariaDB源代码页面。

MariaDB源码编译的通用指令参阅一般构建说明页面源码页面有链接到平台和发布版特定的信息,包括我们如何建立发布程序包的信息。

评论

Re: Where can I download MariaDB documentation?

嗨!我可以在哪里下载MariaDB文档?

Re: Where can I download MariaDB documentation?

您想下载单个PDF文件或类似的东西? MariaDB没有。

我们使用知识库来记录MariaDB,尤其是我们的变化和改进。除此之外,MySQL手册仍然适用。

Re: Where can I download MariaDB documentation?

我想要任何类型的脱机文档,如果没有,也没有问题。

非常谢谢!

无法装载MySQL库

我在ubuntu 11.4安装MariaDB 5.2,一切正常。然而当我运行应用程序, 出现下面的错误:不能加载mysql库。libmysqlclient.so. 16”、“libmysqlclient.so.15”、“libmysqlclient.so”。出现了什么问题,怎样解决呢?

谢谢

Iwan setiawan www.acosys.co.id

我假定您使用Installing MariaDB .deb Files上的指令已经安装了MariaDB?您安装了哪个包?mariadb-server或mariadb -server- 5.2

没有看到实际的错误消息,这很难说,但我猜测您在某处有一个老libmysqlclient16包。通过从MariaDB软件包存储库安装(或重新安装)libmysqlclient16和libmariadbclient16也许能够解决这个问题。这样做有个会奏效的:

sudo apt-get install –reinstall libmysqlclient16 libmariadbclient16

 评论

Re: Can’t load MySQL Library

我在http://downloads.askmonty.org/mariadb/repositories/下获取含有”ubuntu-Natty-2.5″的存储库。当这失败,我卸载和重新安装mariadb和MySql的所有库,依然如此。

然后我重新安装ubuntu,然后再安装mariadb,还是失败了。

自从我一遍又一遍试图使用ubuntu地不工作,然后我尝试用opensuse 11.4,它工作了。

谢谢…

Re: Can’t load MySQL Library

很抱歉它没有与Ubuntu很好地为您工作。我运行Ubuntu还没有见过这样的错误。可能是您有一个旧的包包含了libmysqlclient16包(或捆绑自己的)。

很高兴听到和Opensuse一起是正常工作的。

在哪里找到更多的MariaDB开发信息?

参照:MariaDB Development

mariadb崩溃

嗨,我尝试用5.2.10和5.3.2-beta构建几次,得到同样的结果。

我安装服务器,创建一个数据库,运行sql脚本创建数百张表。然后当我登录到运行一个“show tables “,mysqld崩溃。所有这些表创建都使用Aria存储引擎。下面是我唯一配置的 (其余都是默认值):

aria-pagecache-buffer-size=12G

在调试有指针吗?

这就是我在错误日志中所看到的:

111208 14:33:36 [Note] ./bin/mysqld: ready for connections.

Version: ’5.3.2-MariaDB-beta-log’  socket: ‘/var/lib/mysql/mysql.sock’  port: 3306  (MariaDB – http://mariadb.com/)

111208 14:34:00 [Warning] Aborted connection 3 to db: ‘unconnected’ user: ‘root’ host: ‘localhost’ (Got an error reading communication packets)

111208 14:34:02 [Warning] Aborted connection 4 to db: ‘unconnected’ user: ‘root’ host: ‘localhost’ (Got an error reading communication packets)

111208 14:35:05 [ERROR] mysqld got signal 11 ;

This could be because you hit a bug. It is also possible that this binary

or one of the libraries it was linked against is corrupt, improperly built,

or misconfigured. This error can also be caused by malfunctioning hardware.

We will try our best to scrape up some info that will hopefully help diagnose

the problem, but since we have already crashed, something is definitely wrong

and this may fail.

key_buffer_size=0

read_buffer_size=1048576

max_used_connections=3

max_threads=402

threads_connected=3

It is possible that mysqld could use up to

key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 442557 K

bytes of memory

Hope that’s ok; if not, decrease some variables in the equation.

Thread pointer: 0×0

Attempting backtrace. You can use the following information to find out

where mysqld died. If you see no messages after this, something went

terribly wrong…

stack_bottom = (nil) thread_stack 0×48000

./bin/mysqld(my_print_stacktrace+0x2e) [0xa1195e]

./bin/mysqld(handle_segfault+0x3f6) [0x6340a6]

/lib64/libpthread.so.0 [0x3248e0eb10]

./bin/mysqld(ma_checkpoint_execute+0x42d) [0x83bead]

./bin/mysqld(ma_checkpoint_background+0x23f) [0x83c9af]

/lib64/libpthread.so.0 [0x3248e0673d]

/lib64/libc.so.6(clone+0x6d) [0x32482d40cd]

The manual page at http://dev.mysql.com/doc/mysql/en/crashing.html contains

information that should help you find out what is causing the crash.

111208 14:35:05 mysqld_safe Number of processes running now: 0

111208 14:35:05 mysqld_safe mysqld restarted

Here is my OS:

$ cat /etc/redhat-release

Red Hat Enterprise Linux Server release 5.6 (Tikanga)

谢谢您提供一个可重复的测试用例,bug https://bugs.launchpad.net/maria/+bug/902654在我们的环境中是非常重现,希望会很快修复,您可以在launchpad查看进度

评论

Re: mariadb is crashing   

嗨,

如果有可能,请在发布台提交bug(https://bugs.launchpad.net/maria)和您创建数据表的脚本。如果脚本包含机密信息表的名称,列,等等——它可以变得模糊。如果它非常机密的,它无论如何不能提供, ,或是无法复制的模糊的数据的问题,请把尽可能丰富的信息结构的表和索引和数据的大小,如果有任何东西。

同样,请注意在机器上有bugs时有多少内存为mysqld所用。

Re: mariadb is crashing 

好,我今天就写bug报告

谢谢

Re: mariadb is crashing

嗨,

感谢您提交bug报告。下面是我的评论,如果您没有收到更新:

—————

嗨,

只是创建表似乎没有导致崩溃,至少我目前还有遇到。我使用和您相同的设置。

您的日志表明,您的服务器不是空闲的,您有一些定时任务,有些连接到服务器在明显执行一些事件。您能找到是什么在执行吗?可能在同一台服务器上有正在运行的本地连接。

如果您能暂时打开普通日志,其输出可以帮助了解引导致问题的原因。打开日志,设置general_log = 1和global general_log_file = <文件位置>。如果您在正在运行的服务器上做这个,请确保您在改变全局变量(set global),如果您可以在cnf文件配置这些可能更有用,方便我们看到服务器从重启到崩溃的整个活动。

还有一件事,当问题发生了,在日志文件中,服务器输出mysql.user和mysql.db表损坏了。请您检查它们现在是否是好的(运行check table),只要这样知道我们不是处理一个潜在的情况。

谢谢。

Re: mariadb is crashing

嗨, 在添加了那些表几分钟后,可以肯定这是崩溃。这实际上发生在相同的rhel版本的两个独立运行主机。在某种程度上,我认为它已经稳定,那是当我开始运行它,但对我的应用程序不利。

出于好奇,您试试这个相同的rhel版本,遇到我这个bug吗?我想知道这段错误是否与平台有相关的。我也试着在一个早期版本rhel 5.2,和我没有看到的崩溃,尽管我没有任何负荷运行它。

回答您的问题:在db上所执行大量的插入语句和一些查询语句。现在我的应用是由于维护而停机,当它恢复了,,我把日志给您。从我看见那些,我不认为会导致崩溃。

我将检查表和得到信息反馈给您。

我不知道由于维护而停需要机多长时间,但如果您有时间请尝试相同的rhel版本(甚至centos),看看您是否有相同的问题,因为在这两种情况下运行实例,我添加表几分钟后,它们一崩溃。

谢谢。

Re: mariadb is crashing 

嗨,

不,到目前为止,我使用的是一个不同的Linux风味。

关键是,您的服务器崩溃不仅仅是每隔几分钟,它是根据完美的计划崩溃,就像这样:

16:00

16:05                      18:05

16:10                      18:10

16:15                      18:15

16:20                      18:20

16:25                      18:25

16:30                      18:30

16:35                      18:35

16:40                      18:40

16:45                      18:45

16:50                      18:50

16:55                      18:55

17:00                      19:00

17:10  <– ATTENTION! –>  19:10

18:00  <– ATTENTION! –>  20:00

等等,没有错, 周期为两小时。

也有连接错误日志,这发生在准确1秒,这表明一些是有计划。

我不能完全排除这种观点,这是特定于操作系统,但是在我看来更有可能是,在机器上或在DB服务一些事情正在发生的,您观察这些常规的崩溃。它可能是与数据库有关的,比如有计划的连接,或一些完全独立,磁盘维护,或其他什么。前者是容易排除:当我们看到通用日志,希望知道更多。

还有一件事情要检查您在数据库本身是否有任何事件被配置–在SQL文件没有您发送的事件,但也许它们分别被创建的。

Re: mariadb is crashing 

是的,这就是我在最初的解释中指出,“这发生在这个点上大约每5分钟,但有时它崩溃超出这个约束。Mysqld_safe不断重新启动它。”,而且段错误(segfault)似乎来自checkpoint线程。

这里有一些事情要考虑:

1) 我在这些相同的服务器运行了percona mysql,使用相同的磁盘和几个月它完全稳定的。

2) 这是发生在两个有相同的操作系统不同的服务器,而操作系统不是rhel 5.2

3) 栈跟踪说这是一个错误

从这些我有很大的信心,没有被杀死的守护进程。

当我的盒子(box)再次访问时我将给您所需的数据。

Re: mariadb is crashing  

毫无疑问,这是在Aria checkpoint执行内部一个崩溃,我们只需要找到一种方法在本地重现它。我们知道在您的服务器将会发生什么越多信息,我们将取得成功越快。

事实是没有观察RHEL 5.2服务器,并不意味着坏内存访问不会发生,只知道它不会导致崩溃。当我们有正确的DML流使Aria checkpoints工作和在您的服务器上所做一样,在调试二进制文件我们可能会看到更多信息。我在您的数据库试着简单的插入, 到目前为止但没有得到任何(valgrind)错误,因此使用真正的模式比不断尝试随机的更高效(so it’s more efficient to use the real pattern than keep trying random ones.)。

Maria db UDF正则表达式

我已经在http://stackoverflow.com/questions/6659030/udf-regular-expreissions-for-maria-db 被问到。

我发现用户定义函数是很好的( http://www.mysqludf.org/lib_mysqludf_preg/index.php ),在mysql中使用正则表达式,但当我试图安装是却找不到mysql库

====== OUTPUT =====

checking for mysqlbin… dirname: missing operand

Try `dirname –help’ for more information.

checking for mysql_config… no

no

configure: error: “Can’t find mysql library”

====================

The site says

>>If mysql is an unusual place, you might need to add –with-mysql=<mysql directory>/bin/mysql_config

I can’t find mysql_config, searching for mysql shows these directories

/var/log/mysql

/var/lib/mysql

/var/lib/mysql/mysql

/usr/share/mysql

/usr/lib/mysql

/etc/mysql/

 我正使用ubuntu lucid lynx,任何建议将不胜感激,谢谢

栈溢出(stackoverflow)回答:mysql_config需要libmysqlclient-dev(libmariadbclient-dev)包和所需的头文件。

One thought on “MariaDB FAQ(Part 4)

  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>