sql >> Databáze >  >> RDS >> Mysql

Verze vs Distrib číslo MySQL

Ver odkazuje na verzi klienta příkazového řádku mysql - to, co vyvoláváte zadáním 'mysql'
Distrib odkazuje na verzi serveru mysql, se kterou byl váš klient sestaven . Nezaměňujte se serverem mysql, ke kterému jste připojeni a který lze získat pomocí SELECT VERSION();

Klient mysql (to, co vyvoláváte) je distribuován se serverem a, AFAIK, neexistuje snadný způsob, jak jej postavit sám.

Ani k tomu nemohu najít žádnou dokumentaci, takže zdroj je jediným „zdrojem“ dokumentace.

První zastávka:client/mysql.cc:klient 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);

Jak vidíte, používá konstanty VER pro "14.12" a MYSQL_SERVER_VERSION pro "5.0.77"

Kde jsou tyto konstanty definovány?, je otázka.

VER je definován v horní části (řádek 51 v mém zdroji) souboru client/mysql.cc jako konstanta za běhu.

const char *VER= "14.14"; 

A předpokládám, že aktualizace ručně nebo procesem odbavení. Toto je velmi pravděpodobně verze 'klienta', protože je přímo v kódu klienta.

MYSQL_SERVER_VERSION je definován v include/mysql_version.h (řádek 12), který se používá pro klienta i server (mysql / mysqld)

#define MYSQL_SERVER_VERSION            "5.1.56"

(ve skutečnosti se nastavuje v konfiguračním skriptu a nahrazuje se v konfiguračním čase)




  1. Android SQLite:Jak vygenerovat velkou tabulku pro účely testování?

  2. Spojte více řádků v poli pomocí SQL na PostgreSQL

  3. Přístup odepřen uživateli 'root'@'localhost' (pomocí hesla:YES) (Mysql::Error)

  4. Jak získat datum ve formátu RRRR-MM-DD z pole data a času TSQL?