Ver mengacu pada versi klien baris perintah mysql - apa yang Anda panggil dengan mengetik 'mysql'
Distrib mengacu pada versi server mysql klien Anda dibangun dengan . Ini berbeda dengan server mysql tempat Anda terhubung, yang dapat diperoleh dengan SELECT VERSION();
Klien mysql (apa yang Anda bangkitkan) didistribusikan bersama server, dan, AFAIK, tidak ada cara mudah untuk membangunnya sendiri.
Saya juga tidak dapat menemukan dokumentasi untuk ini, jadi sumbernya adalah satu-satunya 'sumber' dokumentasi.
Pemberhentian pertama:client/mysql.cc:klien 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);
Seperti yang Anda lihat, ia menggunakan konstanta VER untuk "14.12" dan MYSQL_SERVER_VERSION untuk "5.0.77"
Di mana konstanta ini didefinisikan?, adalah pertanyaannya.
VER didefinisikan di dekat bagian atas (baris 51 dalam sumber saya) dari client/mysql.cc sebagai konstanta pada saat run time.
const char *VER= "14.14";
Dan saya akan berasumsi, diperbarui dengan tangan atau dengan proses checkin. Kemungkinan besar ini adalah versi 'klien' karena ada di kode klien.
MYSQL_SERVER_VERSION didefinisikan dalam include/mysql_version.h (baris 12) yang digunakan untuk klien dan server (mysql / mysqld)
#define MYSQL_SERVER_VERSION "5.1.56"
(sebenarnya diatur dalam skrip konfigurasi dan diganti pada waktu konfigurasi)