Mysql
 sql >> Base de données >  >> RDS >> Mysql

Version vs numéro de distribution de MySQL

Ver fait référence à la version du client de ligne de commande mysql - ce que vous invoquez en tapant 'mysql'
Distrib fait référence à la version du serveur mysql avec laquelle votre client a été construit . Cela ne doit pas être confondu avec le serveur mysql auquel vous êtes connecté, qui peut être obtenu avec SELECT VERSION();

Le client mysql (ce que vous évoquez) est distribué avec le serveur et, autant que je sache, il n'y a pas de moyen facile de le construire tout seul.

Je ne trouve aucune documentation pour cela non plus, donc la source est la seule "source" de documentation.

Premier arrêt :client/mysql.cc :le 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);

Comme vous le voyez, il utilise les constantes VER pour "14.12" et MYSQL_SERVER_VERSION pour "5.0.77"

Où sont définies ces constantes ?, telle est la question.

VER est défini près du haut (ligne 51 dans ma source) de client/mysql.cc comme une constante au moment de l'exécution.

const char *VER= "14.14"; 

Et je suppose, mis à jour à la main ou par un processus d'enregistrement. Il s'agit très probablement de la version du 'client' car elle se trouve juste là dans le code client.

MYSQL_SERVER_VERSION est défini dans include/mysql_version.h (ligne 12) qui est utilisé à la fois pour le client et le serveur (mysql / mysqld)

#define MYSQL_SERVER_VERSION            "5.1.56"

(il est en fait défini dans le script de configuration et remplacé au moment de la configuration)