Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Version vs. Distrib-Nummer von MySQL

Ver bezieht sich auf die Version des mysql-Befehlszeilenclients – was Sie aufrufen, indem Sie „mysql“
Distrib eingeben bezieht sich auf die MySQL-Server-Version, mit der Ihr Client erstellt wurde . Dies ist nicht zu verwechseln mit dem mysql-Server, mit dem Sie verbunden sind, der mit SELECT VERSION(); abgerufen werden kann

Der MySQL-Client (was Sie hervorrufen) wird mit dem Server verteilt, und AFAIK, es gibt keine einfache Möglichkeit, ihn selbst zu erstellen.

Ich kann auch keine Dokumentation dafür finden, also ist die Quelle die einzige 'Quelle' der Dokumentation.

Erster Halt:client/mysql.cc:der MySQL-Client.

    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);

Wie Sie sehen, verwendet es die Konstanten VER für „14.12“ und MYSQL_SERVER_VERSION für „5.0.77“

Wo sind diese Konstanten definiert?, ist die Frage.

VER ist ganz oben (Zeile 51 in meiner Quelle) von client/mysql.cc als Konstante zur Laufzeit definiert.

const char *VER= "14.14"; 

Und ich würde annehmen, von Hand oder durch einen Checkin-Prozess aktualisiert. Dies ist sehr wahrscheinlich die Version des 'Client', da sie direkt im Client-Code enthalten ist.

MYSQL_SERVER_VERSION ist in include/mysql_version.h (Zeile 12) definiert, die sowohl für den Client als auch für den Server (mysql / mysqld) verwendet wird

#define MYSQL_SERVER_VERSION            "5.1.56"

(es wird tatsächlich im Konfigurationsskript gesetzt und zur Konfigurationszeit ersetzt)