Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Versão vs número de distribuição do MySQL


Ver refere-se à versão do cliente de linha de comando mysql - o que você está invocando digitando 'mysql'
Distrib refere-se à versão do servidor mysql com o qual seu cliente foi construído . Isso não deve ser confundido com o servidor mysql ao qual você está conectado, que pode ser obtido com SELECT VERSION();

O cliente mysql (o que você está evocando) é distribuído com o servidor e, AFAIK, não há uma maneira fácil de construí-lo por conta própria.

Também não consigo encontrar nenhuma documentação para isso, então a fonte é a única 'fonte' de documentação.

Primeira parada:client/mysql.cc:o cliente 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);

Como você vê, ele usa as constantes VER para "14.12" e MYSQL_SERVER_VERSION para "5.0.77"

Onde essas constantes são definidas?, é a questão.

VER é definido próximo ao topo (linha 51 na minha fonte) de client/mysql.cc como uma constante em tempo de execução.
const char *VER= "14.14"; 

E eu diria, atualizado manualmente ou por um processo de check-in. Esta é muito provavelmente a versão do 'cliente' porque está bem ali no código do cliente.

MYSQL_SERVER_VERSION é definido em include/mysql_version.h (linha 12) que é usado tanto para o cliente quanto para o servidor (mysql / mysqld)
#define MYSQL_SERVER_VERSION            "5.1.56"

(na verdade, é definido no script de configuração e substituído no momento da configuração)