的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是什麼意思? 這是記錄/解釋任何地方?
的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是什麼意思? 這是記錄/解釋任何地方?
版指的是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"
(它在配置腳本實際設置和在取代的在配置時間)
完美答案。非常感謝! – grasshopper 2012-01-05 11:46:31
謝謝......雖然如果有人能從MySQL找到關於這方面的官方文檔,我認爲這個鏈接比spelunking代碼更好。 – FlipMcF 2012-01-05 17:40:27