Php 如何检测连接的数据库是MariaDB还是MySQL?
我的PHP应用程序有需求,包括MySQL 5.7+或MariaDB 10.2+。我如何判断这些备选方案中哪些是满意的 我知道如何比较版本号,也知道如何从数据库中获取版本号,但我不知道如何确定它是哪种数据库 我试过了 选择版本 它只返回版本号和服务器操作系统信息,而不返回数据库类型。查找aria\u block\u大小的变量。它的存在几乎肯定意味着MariaDB的某种版本,而不是MySQL,也不是Percona。至少在不久的将来Php 如何检测连接的数据库是MariaDB还是MySQL?,php,mysql,pdo,version,mariadb,Php,Mysql,Pdo,Version,Mariadb,我的PHP应用程序有需求,包括MySQL 5.7+或MariaDB 10.2+。我如何判断这些备选方案中哪些是满意的 我知道如何比较版本号,也知道如何从数据库中获取版本号,但我不知道如何确定它是哪种数据库 我试过了 选择版本 它只返回版本号和服务器操作系统信息,而不返回数据库类型。查找aria\u block\u大小的变量。它的存在几乎肯定意味着MariaDB的某种版本,而不是MySQL,也不是Percona。至少在不久的将来 $info = $pdo->query("SHOW VARIA
$info = $pdo->query("SHOW VARIABLES like '%version%'")->fetchAll(PDO::FETCH_KEY_PAIR);
$server_vendor = strtok($info['version_comment']," ");
$server_version = $info['version'];
版本的开头部分:
5.7和8.0表示MySQL或Percona;这并不意味着你是马里亚布。
10.2亚洲开发银行;MySQL和Percona不太可能长时间达到10。
您需要什么功能?Percona有可能会在MySQL发布之前对MariaDB 10.2进行改进
即使版本为5.1.53-rel11.7-log或5.5.35-0ubuntu0.12.04.2-log,第一部分也为您提供了MySQL/MariaDB/Percona版本的重要部分
Percona的版本看起来像:5.5.31-30.3-log、5.6.30-76.3-56-log、5.6.19-67.0-log——请注意在首字母3后面额外的2或3个数字
MariaDB总是以N.N.N-MariaDB开头
Oracle的MySQL从N.N.N开始,但可能会继续使用-企业付费版,-社区免费版,-0ubuntu0由Ubuntu移植,-Debian等
MariaDB:5.1,5.2,5.3,5.4,5.5,10.0,10.1,10.2,10.3,10.4,10.5
Oracle和Percona:5.1,5.5,5.6,5.7,8.0
8.0周期才刚刚开始。这意味着5.6将很快关闭,5.7还有一些生命,但除了它之外,不会有太多新的东西
澄清什么是主要版本。
对于MySQL和Percona来说,这些都是主要的,但它们不是
连续:5.1、5.5、5.6、5.7、8.0。
对于MariaDB:5.1、5.2、5.3、5.4、5.5、10.0、10.1、10.2、10.3、10.4、10.5。如果您试图从php应用程序内部执行此操作,您可以 哪个php版本?对于PHP7,使用mysqli_get_server_info;或者
<?php
$link = mysqli_connect("localhost", "my_user", "my_password");
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
/* print server version */
printf("Server version: %s\n", mysqli_get_server_info($link));
/* close connection */
mysqli_close($link);
?>
会回来的
服务器版本:5.5.5-10.1.23-MariaDB-9+deb9u1
PHP7
PHP5&实际上,这些变量中的任何一个都包含数据库服务器名称,因此您的命令也只提供有关版本和操作系统的信息。在某些情况下,它们包括MySQL或mariadb.org。也许所有的案例;我说不出来。是的,一次把专业从5改为8意味着他们不想很快赶上。我添加了更多的版本信息。添加了一个主要版本的列表。MySQL和朋友不考虑5。成为少校。相反,5.7是主要的;5.7.17是次要的。