2011-12-27 72 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