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

Version vs Distrib-nummer af MySQL

Ver refererer til versionen af ​​mysql-kommandolinjeklienten - hvad du fremkalder ved at skrive 'mysql'
Disrib henviser til mysql-serverversionen, som din klient er bygget med . Dette må ikke forveksles med den mysql-server, du er forbundet til, som kan fås med SELECT VERSION();

Mysql-klienten (det du fremkalder) er distribueret med serveren, og AFAIK, der er ingen nem måde at bygge den på på egen hånd.

Jeg kan heller ikke finde nogen dokumentation for dette, så kilden er den eneste 'kilde' til dokumentation.

Første stop:client/mysql.cc:mysql-klienten.

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

Som du kan se, bruger den konstanterne VER for "14.12" og MYSQL_SERVER_VERSION for "5.0.77"

Hvor er disse konstanter defineret?, er spørgsmålet.

VER er defineret nær toppen (linje 51 i min kilde) af client/mysql.cc som en konstant under kørselstid.

const char *VER= "14.14"; 

Og jeg ville antage, opdateret i hånden eller ved en check-in-proces. Dette er meget sandsynligt versionen af ​​'klienten', fordi den er lige der i klientkoden.

MYSQL_SERVER_VERSION er defineret i include/mysql_version.h (linje 12), som bruges til både klienten og serveren (mysql / mysqld)

#define MYSQL_SERVER_VERSION            "5.1.56"

(det er faktisk sat i konfigurationsscriptet og erstattet på konfigurationstidspunktet)




  1. Top 50 MySQL-interviewspørgsmål, du skal forberede i 2022

  2. SQL Server dynamisk PIVOT-forespørgsel?

  3. Hvordan undgår man flere funktionsevaler med (func()).*-syntaksen i en SQL-forespørgsel?

  4. Tuning MySQL for hurtig oprettelse af kolonne/indeks under udvikling