Wersja odnosi się do wersji klienta wiersza poleceń mysql - co wywołujesz, wpisując 'mysql'
Distrib odnosi się do wersji serwera mysql, z którą Twój klient został zbudowany . Nie należy tego mylić z serwerem mysql, z którym jesteś połączony, który można uzyskać za pomocą SELECT VERSION();
Klient mysql (to, co wywołujesz) jest dystrybuowany z serwerem i, AFAIK, nie ma łatwego sposobu na samodzielne zbudowanie go.
Nie mogę też znaleźć żadnej dokumentacji na ten temat, więc źródło jest jedynym „źródłem” dokumentacji.
Pierwszy przystanek:client/mysql.cc:klient 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);
Jak widać, używa stałych VER dla „14.12” i MYSQL_SERVER_VERSION dla „5.0.77”
Gdzie są zdefiniowane te stałe?, brzmi pytanie.
VER jest zdefiniowany u góry (linia 51 w moim źródle) klienta/mysql.cc jako stała w czasie wykonywania.
const char *VER= "14.14";
I zakładam, aktualizowane ręcznie lub przez proces odprawy. Jest to najprawdopodobniej wersja „klienta”, ponieważ znajduje się w kodzie klienta.
MYSQL_SERVER_VERSION jest zdefiniowany w pliku include/mysql_version.h (linia 12), który jest używany zarówno dla klienta, jak i serwera (mysql / mysqld)
#define MYSQL_SERVER_VERSION "5.1.56"
(w rzeczywistości jest to ustawiane w skrypcie konfiguracyjnym i zastępowane w czasie konfiguracji)