Версия vs Дистрибутив MySQL

Ввод

mysql --version

в оболочке Linux. Я получил следующее:

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

Число 5.0.77, очевидно, относится к известному номеру версии MySQL. Я сомневаюсь, что означает 14.12? Это документировано/объяснено где угодно?

Ответы

Ответ 1

Ver относится к версии клиента командной строки mysql - то, что вы вызываете, набрав "mysql"
Распространение относится к версии сервера 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 в моем источнике) клиента /mysql.cc как константа во время выполнения.

const char *VER= "14.14"; 

И я бы предположил, обновленный вручную или посредством процесса проверки. Это, скорее всего, версия "клиента", потому что она находится прямо в клиентском коде.

MYSQL_SERVER_VERSION определяется в include/mysql_version.h(строка 12), который используется как для клиента, так и для сервера (mysql/mysqld)

#define MYSQL_SERVER_VERSION            "5.1.56"

(он фактически установлен в конфигурации script и заменен во время настройки)