如何在没有连接的情况下在PHP中获取服务器MySQL版本

如何在没有连接的情况下在PHP中获取服务器MySQL版本,php,mysql,Php,Mysql,我需要在PHP脚本中回显MySQL版本(这是用户在下载插件之前的服务器需求检查页面),而不让他们连接到数据库 将此脚本上载到服务器并在浏览器中打开。我可以要求他们运行php信息,但我所需要的只是Mysql版本,它将在脚本中与其余结果一起格式化 我应该怎么做呢?如果您可以访问命令行mysql可执行文件,您可以尝试以下操作: function getMySQLVersion() { $output = shell_exec('mysql -V'); preg_match('@[0-9]+

我需要在PHP脚本中回显MySQL版本(这是用户在下载插件之前的服务器需求检查页面),而不让他们连接到数据库

将此脚本上载到服务器并在浏览器中打开。我可以要求他们运行php信息,但我所需要的只是Mysql版本,它将在脚本中与其余结果一起格式化


我应该怎么做呢?

如果您可以访问命令行mysql可执行文件,您可以尝试以下操作:

function getMySQLVersion() { 
  $output = shell_exec('mysql -V'); 
  preg_match('@[0-9]+\.[0-9]+\.[0-9]+@', $output, $version); 
  return $version[0]; 
}
对于客户端版本:

print mysql_get_client_info();
如果没有shell访问权限,则必须首先连接服务器版本:

$link = mysql_connect("localhost", "username", "password");
if (!$link) die('Could not connect: ' . mysql_error());
print "MySQL server version: " . mysql_get_server_info();
mysql_close($link);

您需要用户输入其DB凭据,以便连接到MySQL服务器并运行以下查询以获得MySQL服务器版本:

SHOW VARIABLES LIKE 'version'
以下是我的服务器上的输出:

Variable_name     Value
----------------------------
version           5.1.53-log

phpinfo
输出的信息应准确无误。 只需将以下内容添加到文件并在浏览器中访问即可:

mysql\u get\u client\u info()已被弃用。对于PHP 7及以上版本,您必须使用:

echo mysqli_get_client_info();

许多主机不允许shell exec。还有其他方法吗?那将是客户端版本。很多主机的服务器都在单独的机器上。除非您想要的是MySQL客户端版本而不是服务器版本?MySQL客户端版本显示在phpinfo()request.Nice中
mysql\u get\u server\u info()
在PHP中比
SHOW VARIABLES
更容易。只需更新一条旁注。从PHP5.5.0开始,所有的
mysql\u*
似乎都被弃用了。因此,
mysql获取客户机信息
函数。看一看,在连接到mysql服务器之前,无法确定任何服务器可能运行或不运行的版本。您最好希望找到安装的客户端版本,而不是服务器版本。谢谢大家。我想我必须让他们输入数据库信息。
phpinfo()
报告“客户端API库版本=>mysqlnd 5.0.12-dev”,但实际的MySQL版本是5.6.33。看起来很奇怪@bancer你能找到解释吗?它是在虚拟机内部吗?