2011-12-27 50 views
15

的DISTRIB数量的Linux shell中键入版本的MySQL VS

mysql --version 

命令我有以下几点:

mysql Ver 14.12 Distrib 5.0.77, for redhat-linux-gnu (i686) using readline 5.1 

数量5.0.77显然指的是MySQL的已知的版本号。 我有疑问,14.12是什么意思? 这是记录/解释任何地方?

回答

15

指的是mysql命令行客户端的版本 - 你键入“MySQL的”
DISTRIB指MySQL服务器版本客户端进行建有 envoking什么。这不会与你连接到的mysql服务器混淆,这可以通过SELECT VERSION();

mysql客户端(你正在唤起的)与服务器一起分发,并且AFAIK没有简单的方法建立它自己的。

我找不到任何这方面的文档,所以来源是文档的唯一“来源”。

第一站:client/mysql.cc:mysql客户端。

static void usage(int version) 
    { 
    ... 
    printf("%s Ver %s Distrib %s, for %s (%s) using %s %s\n", 
      my_progname, VER, MYSQL_SERVER_VERSION, SYSTEM_TYPE, MACHINE_TYPE, 
      readline, rl_library_version); 

正如你看到的,它使用常数VER为“14.12”,并为MYSQL_SERVER_VERSION“5.0.77”

在哪里这些常量定义?是个问题。

VER在客户端/ mysql.cc的顶部(在我的源代码行51)附近定义为运行时的常量。

const char *VER= "14.14"; 

而且我会假设,手工更新或通过签入过程。这很可能是'客户端'的版本,因为它就在客户端代码中。

MYSQL_SERVER_VERSION在定义包括其用于在客户端和服务器(MySQL的/ mysqld的)两者/ mysql_version.h(第12行)

#define MYSQL_SERVER_VERSION   "5.1.56" 

(它在配置脚本实际设置和在取代的在配置时间)

+0

完美答案。非常感谢! – grasshopper 2012-01-05 11:46:31

+0

谢谢......虽然如果有人能从MySQL找到关于这方面的官方文档,我认为这个链接比spelunking代码更好。 – FlipMcF 2012-01-05 17:40:27