programing

MySQL 버전 대 배포 번호

codeshow 2023. 9. 19. 21:33
반응형

MySQL 버전 대 배포 번호

타이핑하기

mysql --version

리눅스 셸에서 명령어를 사용하면 다음을 얻을 수 있는 것은 다음과 같습니다.

mysql  Ver 14.12 Distrib 5.0.77, for redhat-linux-gnu (i686) using readline 5.1

5.0.77이라는 숫자는 MySQL의 알려진 버전 번호를 의미합니다.14.12가 무슨 뜻입니까?

문서화된/설명된 곳이 있습니까?

Ver는 'mysql'을 입력하여 호출하는 mysql 명령줄 클라이언트의 버전을 나타냅니다.
배포는 클라이언트가 구축한 mysql 서버 버전을 나타냅니다.이것은 당신이 연결되어 있는 mysql 서버와 혼동해서는 안되며, 이 서버는 다음과 같이 얻을 수 있습니다.SELECT VERSION();

mysql 클라이언트(당신이 호출하는 것)는 서버와 함께 배포되며, AFAIK, 자체적으로 구축하는 쉬운 방법이 없습니다.

저도 이에 대한 문서를 찾을 수 없어서 문서의 유일한 '출처'는 출처입니다.

첫 번째 중지: client/mysql.cc : 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);

보시다시피 "14.12"의 경우 상수 VER을 사용하고 "5.0.77"의 경우 MYSQL_SERVER_VERSION을 사용합니다.

문제는 이 상수들이 어디서 정의되는가 하는 것입니다.

VER는 실행 시 상수로 클라이언트/mysql.cc 의 맨 위(내 소스의 51번 행) 근처에서 정의됩니다.

const char *VER= "14.14"; 

그리고 저는 수기나 체크인 절차를 통해 업데이트 될 것이라고 생각합니다.이것은 클라이언트 코드에 바로 있기 때문에 '클라이언트'의 버전일 가능성이 매우 높습니다.

MYSQL_SERVER_VERSION은 클라이언트와 서버(mysql / mysqld)에 모두 사용되는 include/mysql_version.h(12행)에 정의되어 있습니다.

#define MYSQL_SERVER_VERSION            "5.1.56"

(실제로 구성 스크립트에 설정되어 구성 시간에 대체됩니다.)

언급URL : https://stackoverflow.com/questions/8645184/version-vs-distrib-number-of-mysql

반응형