ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [MySQL] auto.cnf & server-uuid 알아보기
    Database/MySQL 2022. 12. 19. 22:55
    반응형

    - 목차

     

    auto.cnf ?

    auto.cnf 파일MySQL 서버가 초기화될 때 자동으로 생성되는 파일입니다.

    auto.cnf 파일은 단 하나의 정보를 저장하는데요.

    이는 MySQL 이 자신을 식별하기 위한 UUID 를 자동으로 생성하고, 이 server-uuidauto.cnf 파일 에 저장합니다.

     

    server-uuid 는 my.cnf 파일에서 설정하는 server_id 와는 다릅니다.

    server-uuid 와 server_id 모두 MySQL 서버를 식별하기 위한 고유값이라는 공통점이 있지만,

    server_id 는 MySQL Replication 에서 Primary 와 Replica 를 구별하기 위한 목적으로 사용되며,

    server-uuid 는 GTID ( Global Transaction Identifier ) 를 생성하는 목적을 가집니다.

     

    server_uuid 확인해보기.

    MySQL 서버를 실행하게 되면 auto.cnfserver_uuid 가 자동으로 생성됩니다.

    아래의 명령어를 통해서 3개의 MySQL Docker Container 를 생성할 수 있습니다.

     

    docker run -d --rm --name mysql1 -e MYSQL_ALLOW_EMPTY_PASSWORD=1 mysql:8.0.30
    
    docker run -d --rm --name mysql2 -e MYSQL_ALLOW_EMPTY_PASSWORD=1 mysql:8.0.30
    
    docker run -d --rm --name mysql3 -e MYSQL_ALLOW_EMPTY_PASSWORD=1 mysql:8.0.30

     

    일반적으로 /var/lib/mysql 디렉토리 하위에 auto.cnf 파일이 생성됩니다.

     

    docker exec mysql1 cat /var/lib/mysql/auto.cnf
    
    docker exec mysql2 cat /var/lib/mysql/auto.cnf
    
    docker exec mysql3 cat /var/lib/mysql/auto.cnf

     

    아래와 같이 각 MySQL Server 는 고유한 server-uuid 를 가집니다.

     

     

     

     

    GTID 확인해보기.

    server-uuid 는 GTID 를 생성하는 목적으로 활용됩니다.

    GTID 는 Global Transaction Identifer 의 약자로써, Primary - Replica 간의 데이터 복제를 돕기 위한 목적을 가집니다.

    그래서 일반적으로 Bin Log 와 Relay Log 에서 GTID 를 확인할 수 있습니다.

     

    show master status; 를 통해서 아래와 같은 결과를 확인할 수 있구요.

    server-uuid 인 4eeaf24a-d406-11ef-92ef-0242ac110005

    "4eeaf24a-d406-11ef-92ef-0242ac110005:1-7" 와 같이 GTID 로 사용됩니다.

     

     

    반응형
Designed by Tistory.