确定mysql、percona还是mariaDB

确定mysql、percona还是mariaDB,mysql,mariadb,percona,Mysql,Mariadb,Percona,如何判断我连接的服务器是Percona、MySQL还是MariaDB? 有什么标准的方法可以做到这一点吗? 我目前正在使用SHOW VERSION测试服务器版本,但我还需要在正在使用的应用程序中显示服务器名称。您可以通过以下方式获取特定信息: SHOW VARIABLES LIKE '%vers%' version和version\u comment非常具体。请记住,“MySQL”是原始版本,其他是派生版本。下面是一些可能始终有效的代码: version_comment REGEXP 'Mar

如何判断我连接的服务器是Percona、MySQL还是MariaDB? 有什么标准的方法可以做到这一点吗?
我目前正在使用
SHOW VERSION
测试服务器版本,但我还需要在正在使用的应用程序中显示服务器名称。

您可以通过以下方式获取特定信息:

SHOW VARIABLES LIKE '%vers%'
version
version\u comment
非常具体。

请记住,“MySQL”是原始版本,其他是派生版本。下面是一些可能始终有效的代码:

version_comment REGEXP 'MariaDB' -- > Mariadb
version_comment REGEXP 'Percona' -- > Percona
else MySQL
version\u comment
可通过
SHOW VARIABLES
information\u schema
访问

@@version
不可靠,因为Percona没有留下任何线索,尽管我怀疑“-30.3-”是
5.5.31-30.3-log
中的线索


(我检查了106台服务器。)

在我的开发服务器上,
version\u comment=(Ubuntu)
version=5.5.47-0ubuntu0.14.04.1
。任何地方都没有“MySQL”字符串的痕迹。我查看了所有
显示变量的列表,但没有发现任何相关内容。这可能是特定于分布的。在Fedora上,我在测试的两个实例中看到了“MySQL社区服务器(GPL)”或“MariaDB服务器”。似乎是这样,来自states
Source distribution
的示例。Percona是否有任何特殊变量可供选择?我再也无法访问该服务器了。它被重新安装。我希望innodb_*变量被命名为xtradb_*变量,但我不认为这是我问题的明确答案。因此我可以假设Percona和MariaDB总是报告它们的名称,而MySQL在这里的行为有所不同?我的答案基于经验证据。根据历史。。。MySQL是基础产品(现在由Oracle所有),因此没有理由在设置中特别说明。其他的都是衍生产品,所以他们觉得有必要这样做。一个较长的答案: