MariaDB 10.1.1:performance_schema 表不再使用 .frm 文件

是的!在 MariaDB 10.1.1 中,PERFORMANCE_SCHEMA 中的表不使用 .frm 文件。这些文件不会创建,不会读取 — 事实上,PERFORMANCE_SCHEMA 表根本不会触碰磁盘。

这得益于 MariaDB 中一个不太为人所知的功能——新的 **表发现(table discovery)**(“旧表发现”在 2004 年于 MySQL 的 NDB Cluster 中实现),该功能在 MariaDB 10.0.2 中实现。MariaDB 不再读取和解析 .frm 文件,而是直接询问 PERFORMANCE_SCHEMA 表的结构,由于这些表总是具有固定的结构,该表会直接将其返回给 MariaDB,无需任何外部数据字典。…

MariaDB 10.1.1:默认角色

正如大家所知,MariaDB 从 10.0.5 版本开始支持角色(roles)。它们的实现几乎完全符合 SQL Standard 2003 的规范,即功能 T331“基本角色”和 T332“扩展角色”。

但我们经常听到抱怨,用户对纯粹的标准功能集并不满意。特别是,标准规定必须执行
SET ROLE foobar;
才能使用授予角色 foobar 的权限。这并非总是方便的,有时甚至不可能(想象一下,您需要将角色权限授予闭源应用程序使用的账户)。…

动态复制过滤器 — 我们的轮子将是方形的!

这既可笑又令人悲伤。新的 MySQL 5.7 里程碑版本带来了一个新功能 — 复制过滤器现在是动态的。毫无疑问,这是一个很棒且期待已久的功能。

简而言之,多年来 MySQL 从属服务器可以根据这些事件适用的数据库或表名来过滤传入的复制事件流。这些过滤器使用  my.cnf 文件(或命令行)进行配置,特别是以下变量:
replicate_do_db
replicate_ignore_db
replicate_do_table
replicate_ignore_table
replicate_wild_do_table
replicate_wild_ignore_table
自然地,用户希望无需重启服务器就能修改这些选项的值。…

牢不可破的 MySQL?

我越来越担心 Oracle 当前处理 MySQL 安全的方式。而我曾独自负责了大约十年的 security@mysql.com 的事实,并没有让事情变得更容易,相反,它只突显了态度的变化。

从显而易见的开始 — 对关键 bug 修复的响应有些慢,这是可以预料的,Oracle 是个大公司,对吧?安全漏洞的信息披露很少,CPU 中被仔细地去除了任何有助于理解问题的东西,需要花费数小时才能将它们映射到代码变更。甚至连测试用例现在都被保密了。…

消失的测试用例,还是 MySQL 的另一部分刚刚变成了闭源?

大约一周前,我在查看 MySQL 5.5.27 时,注意到了一件奇怪的事情。尽管新的 MySQL 版本包含了其通常部分的错误修复,但没有一个附带了测试用例。

现在,让我来告诉您一些关于测试的事情。多年来,MySQL 一直使用自己的测试框架,称为 mysql-test。第一个版本早在 1999 年就已编写。多年来,它积累了大量的测试用例。新功能的测试和回归测试 — 后者保证一个 bug 一旦修复,将永不再出现。…

MariaDB:通过两步验证提升安全性

在这篇入门文章中,我将展示如何通过使用两步验证来提升您的 MariaDB 安装安全性,以及如何在您的 Windows GUI 客户端中使用它。

假设您的数据存储在 MariaDB 中,例如安装在 Ubuntu 上。您的用户连接到它来运行临时查询,使用某种 Windows GUI 客户端。您不希望他们将访问密码写在便签上或让客户端自动输入。您也不希望销售人员在网吧用笔记本电脑连接到主服务器时,密码被任何人看到。…

编写 MariaDB PAM 身份验证插件

您可能知道,自 5.2.0 版本(2010 年 4 月发布)以来,我们支持可插拔身份验证(Pluggable Authentication)。利用此功能,可以实现任意的用户身份验证和账户管理策略,完全取代内置的 MariaDB 用户名/密码组合和 mysql.user 表身份验证。

此外,您可能听说过,Oracle 最近发布了一个用于 MySQL 的 PAM 身份验证插件。唉,这个插件无法在 MariaDB 上运行 — 尽管 MySQL 对可插拔身份验证的实现基于我们的,但 API 不兼容。而且,由于它是闭源的,这个插件无法被修复以在 MariaDB 中运行。而且 — 我不是凭空捏造 — 这个插件不支持客户端和服务器之间的通信,因此即使有了这个插件以及 PAM 的所有强大功能,唯一可能的身份验证方法仍然是简单的用户名/密码组合。…

Bzr 和 launchpad 技巧:firefox 插件

如果你使用 bazaar,你会看到它的 URI。完整列表可以在 bzr help urlspec 中找到。虽然我通常只使用其中的一部分,例如 bzr+ssh://bazaar.launchpad.net/~maria-captains/maria/5.2-serg/http://bazaar.launchpad.net/%2Bbranch/mysql-server/5.5/

此外,我还经常使用 Launchpad 别名,例如 lp:~maria-captains/maria/5.3-serg/lp:maria/5.3lp:869001

最后,我们还在 MySQL 中使用过一些常见的缩写,以及在 MariaDB 中使用的其他缩写,例如 bug#12345wl#90

令人烦恼的是,我需要记住 wl#90 对应的是 http://askmonty.org/worklog/?tid=90,并且当我想查找此任务时,必须在浏览器的地址栏中输入后者。…