Mysql
 sql >> Database >  >> RDS >> Mysql

Versione vs numero di distribuzione di MySQL

Ver si riferisce alla versione del client della riga di comando mysql - cosa stai invocando digitando 'mysql'
Distribuzione si riferisce alla versione del server MySQL con cui è stato creato il tuo client . Questo non deve essere confuso con il server mysql a cui sei connesso, che può essere ottenuto con SELECT VERSION();

Il client mysql (quello che stai evocando) è distribuito con il server e, AFAIK, non esiste un modo semplice per costruirlo da solo.

Non riesco nemmeno a trovare alcuna documentazione per questo, quindi la fonte è l'unica "fonte" di documentazione.

Prima tappa:client/mysql.cc:il client 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);

Come puoi vedere, usa le costanti VER per "14.12" e MYSQL_SERVER_VERSION per "5.0.77"

Dove sono definite queste costanti?, è la domanda.

VER è definito nella parte superiore (riga 51 nel mio codice sorgente) di client/mysql.cc come una costante in fase di esecuzione.

const char *VER= "14.14"; 

E suppongo, aggiornato a mano o da un processo di check-in. Questa è molto probabilmente la versione del "client" perché è proprio lì nel codice client.

MYSQL_SERVER_VERSION è definito in include/mysql_version.h (riga 12) che viene utilizzato sia per il client che per il server (mysql / mysqld)

#define MYSQL_SERVER_VERSION            "5.1.56"

(è effettivamente impostato nello script di configurazione e sostituito al momento della configurazione)