sql >> Base de Datos >  >> RDS >> Mysql

Versión vs número de distribución de MySQL

Ver se refiere a la versión del cliente de línea de comandos mysql:lo que está invocando al escribir 'mysql'
Distrib se refiere a la versión del servidor mysql con la que su cliente fue construido . Esto no debe confundirse con el servidor mysql al que está conectado, que se puede obtener con SELECT VERSION();

El cliente mysql (lo que está evocando) se distribuye con el servidor y, AFAIK, no hay una manera fácil de construirlo por sí mismo.

Tampoco puedo encontrar ninguna documentación para esto, por lo que la fuente es la única 'fuente' de documentación.

Primera parada:client/mysql.cc:el 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 ves, usa las constantes VER para "14.12" y MYSQL_SERVER_VERSION para "5.0.77"

¿Dónde se definen estas constantes?, es la pregunta.

VER se define cerca de la parte superior (línea 51 en mi código fuente) de client/mysql.cc como una constante en tiempo de ejecución.

const char *VER= "14.14"; 

Y supongo, actualizado a mano o mediante un proceso de registro. Es muy probable que esta sea la versión del 'cliente' porque está ahí mismo en el código del cliente.

MYSQL_SERVER_VERSION se define en include/mysql_version.h (línea 12), que se usa tanto para el cliente como para el servidor (mysql / mysqld)

#define MYSQL_SERVER_VERSION            "5.1.56"

(en realidad, se establece en el script de configuración y se sustituye en el momento de la configuración)