Версия се отнася до версията на клиента от командния ред на mysql - това, което извиквате, като напишете 'mysql'
Distrib се отнася до версията на сървъра на mysql, с която е изграден клиентът ви . Това не трябва да се бърка със сървъра 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 се дефинира близо до горната част (ред 51 в моя източник) на client/mysql.cc като константа по време на изпълнение.
const char *VER= "14.14";
И бих предположил, актуализиран на ръка или чрез процес на чекиране. Много вероятно това е версията на „клиента“, защото е точно там в клиентския код.
MYSQL_SERVER_VERSION е дефиниран в include/mysql_version.h (ред 12), който се използва както за клиента, така и за сървъра (mysql / mysqld)
#define MYSQL_SERVER_VERSION "5.1.56"
(всъщност се задава в скрипта за конфигуриране и се заменя по време на конфигуриране)