【问题标题】:determine if mysql or percona or mariaDB判断是mysql还是percona还是mariaDB
【发布时间】:2016-09-16 00:25:40
【问题描述】:

如何判断我要连接的服务器是 Percona 还是 MySQL 还是 MariaDB? 有没有这样做的标准方法? 我目前正在使用SHOW VERSION 来测试服务器版本,但我还需要在我正在开发的应用程序中显示服务器名称。

【问题讨论】:

    标签: mysql mariadb percona


    【解决方案1】:

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

    version_comment REGEXP 'MariaDB' -- > Mariadb
    version_comment REGEXP 'Percona' -- > Percona
    else MySQL
    

    version_comment 可以通过SHOW VARIABLESinformation_schema 访问。

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

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

    更新

    (检查 264 个服务器。)

    version         REGEXP 'MariaDB' -- > Mariadb
    version_comment REGEXP 'Percona' -- > Percona
    else MySQL
    

    (我们可能无法相信这是最后的决定。)

    【讨论】:

    • 所以我可以假设 Percona 和 MariaDB 总是报告他们的名字,而 MySQL 在这里表现不同?
    • 我的回答是基于经验证据。根据历史... MySQL 是基础产品(现在由 Oracle 拥有),因此没有理由在设置中进行具体说明。其他都是衍生产品,所以他们觉得有必要这样做。
    • 请注意,此答案可能已过时。我得到版本 = '10.3.22-MariaDB-0+deb10u1-log',version_commnet = 'Debian 10'。见mariadb.com/docs/reference/mdb/system-variables/version_comment
    • @Elvex - 谢谢。我已经更新了我的答案。
    【解决方案2】:

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

    SHOW VARIABLES LIKE '%vers%'
    

    versionversion_comment 非常具体。

    【讨论】:

    • 在我的开发服务器上,version_comment=(Ubuntu)version=5.5.47-0ubuntu0.14.04.1。任何地方都没有“MySQL”字符串的痕迹。我查看了所有 SHOW VARIABLES 列表,但没有发现任何相关信息
    • 这可能是特定于发行版的。在 Fedora 上,我看到我正在测试的两个实例的“MySQL 社区服务器 (GPL)”或“MariaDB 服务器”。
    • 好像是这样,来自dev.mysql.com/doc/refman/5.7/en/show-variables.html 的例子说明Source distribution
    • Percona 有什么特殊的变量可以挑出来吗?
    • 我无法再访问该服务器了。它被重新安装。我希望将 innodb_* 变量命名为 xtradb_*,但我不会将此称为对我的问题的明确答案。
    猜你喜欢
    • 2013-03-21
    • 2017-07-19
    • 2021-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-12
    • 2013-05-12
    • 2021-06-07
    相关资源
    最近更新 更多