MySQL 5.7.35 릴리즈 노트 2021-07-20

MySQL

MySQL 5.7.35 릴리즈 노트 입니다.

감사 로그 노트 Audit Log Notes

  • MySQL Enterprise Audit의 경우 새로운 audit_log_format_unix_timestamp 시스템 변수를 사용하여 각 감사 레코드에 time 필드를 포함할 수 있습니다. 필드 값은 감사 이벤트가 생성된 날짜와 시간을 나타내는 UNIX 타임스탬프 값을 나타내는 정수입니다. time 필드는 JSON 형식의 로그 파일에만 지원됩니다.

사용 중지 및 제거 노트 (Deprecation and Removal Notes)

  • 이제 TLSv1 및 TLSv1.1 연결 프로토콜은 더 이상 사용되지 않으며 해당 프로토콜에 대한 지원은 향후 MySQL 버전에서 제거될 수 있습니다. (배경에 대해서는 IETF 메모 Deprecating TLSv1.0 and TLSv1.1. 참조) 보다 안전한 TLSv1.2 및 TLSv1.3 프로토콜을 사용하여 연결하는 것이 좋습니다. TLSv1.3을 사용하려면 MySQL 서버와 클라이언트 응용 프로그램을 모두 OpenSSL 1.1.1 이상으로 컴파일해야 합니다. 서버 측면에서 이러한 사용 안 함은 다음과 같은 영향을 미칩니다.
    • 서버 시작 중에 tls_version 시스템 변수에 사용되지 않는 TLS 프로토콜이 포함된 값이 할당된 경우, 서버는 사용되지 않는 각 프로토콜에 대한 경고를 오류 로그에 기록합니다.
    • 클라이언트가 더 이상 사용되지 않는 TLS 프로토콜을 사용하여 성공적으로 연결되면 서버는 오류 로그에 경고를 기록합니다.
    클라이언트 측에서는 사용 안 함이 가시적인 영향을 미치지 않습니다. 사용되지 않는 TLS 프로토콜을 허용하도록 구성된 경우 클라이언트는 경고를 발생시키지 않습니다. 여기에는 다음이 포함됩니다.
    • MySQL 서버 연결에 대한 TLS 프로토콜을 지정하기 위한 --tls-version 옵션을 지원하는 클라이언트 프로그램입니다.
    • 복제본이 원본 서버 연결에 대한 TLS 프로토콜을 지정할 수 있는 문입니다. (CHANGE MASTER TO 에는 MASTER_TLS_VERSION` 옵션이 있습니다).
    (Bug #32565996)

패키지 노트 (Packaging Notes)

  • 시스템 curl 라이브러리에 연결하지 않고 curl이 포함된 이진 패키지는 curl 7.77.0을 사용하도록 업그레이드되었습니다. (Bug #33077562)
  • 번들 ‘lz4’ 라이브러리가 버전 1.9.3으로 업그레이드되었습니다. (Bug #29747853)

버그 수정 (Bugs Fixed)

  • InnoDB: MySQL 5.6에서 MySQL 5.7로 업그레이드하고 로그 잘라내기 실행 취소가 활성화된(innodb_undo_log_truncate=ON) 서버를 시작한 후 테이블 영역 잘라내기 실행 취소 작업이 시작되면 교착 상태가 발생했습니다. 교착 상태로 인해 세마포어 대기 시간이 오래 걸렸고 결국 실패했습니다. MySQL 5.6에서 MySQL 5.7.35 이상으로 직접 업그레이드하면 이러한 잠재적인 문제가 발생하지 않습니다. (Bug #32800020)
  • InnoDB: ‘InnoDB’ memcached 플러그인 원본에서 정수 언더플로 문제가 해결되었습니다.(Bug #32620378, Bug #32620398)
  • InnoDB: 키 접두사 길이가 767바이트보다 큰 인덱스가 ‘REDUNSENT’ 행 형식으로 정의된 테이블에서 허용되었으며, 이는 해당 행 형식의 인덱스 키 접두사 길이 제한을 초과합니다. 인덱스를 추가한 ALTER TABLE 작업은 테이블의 실제 행 형식이 아닌 innodb_default_row_format 변수로 정의된 행 형식에 대한 인덱스 키 접두사 길이를 검증했습니다. 수정 프로그램은 올바른 행 형식에 대해 인덱스 키 접두사 길이를 확인합니다. (Bug #32507117, Bug #102597)
  • InnoDB: 온라인 버퍼 풀 크기 조정 작업으로 인해 이전 버퍼 풀 페이지 해시가 해제되어 이전 페이지 해시가 필요한 동시 버퍼 풀 조회와 충돌합니다.(Bug #32460315)
  • InnoDB: 버퍼 풀 플러시 목록의 맨 뒤에 있는 수많은 시스템 임시 테이블 페이지로 인해 성능이 저하되었습니다. 플러시 목록 스캔이 시스템 임시 테이블 페이지를 통과하는 동안 ‘flush_list_mutex’가 보류되었습니다. 플러시 목록 검색에서는 이제 시스템 임시 테이블 페이지가 제외됩니다.Bug #31060470, Bug #98974)
  • InnoDB: 동시 업데이트 작업 수가 많고 innodb_thread_concurrency 설정이 낮은 문 기반 복제를 사용하는 시스템에서 이진 로그 순환 교착 상태가 발생했습니다. (Bug #30215068, Bug #96374)
  • Replication: 시스템 변수 ‘replication_optimize_for_static_plugin_config’가 설정된 경우 서버 종료 시 그룹 복제 및 반동기 복제용 플러그인을 새로 제거할 수 없습니다. (Bug #32798287)
  • Replication: 그룹에 대한 보기 변경이 발생하는 동시에 START GROUP_REPICATIONSTOP GROUP_REPICATION 문이 실행되면 교착 상태가 발생할 수 있습니다. (Bug #32738137, Bug #32836868)
  • Replication: 그룹 구성원의 복제 채널이 트랜잭션을 커밋하려고 할 때 STOP GROUP_REPLICATION 문이 실행된 경우 교착 상태가 발생할 수 있습니다. 이제 서버는 잠금 및 커밋이 완료되어 교착 상태가 발생할 때까지 기다리지 않고 관련 잠금을 획득할 수 없는 경우 트랜잭션을 즉시 롤백합니다. (Bug #32633176)
  • Replication: 다중 스레드 복제본에서 트랜잭션을 재시도할 때 활성 이벤트에 대한 참조가 잘못 관리되는 경우가 있습니다. (Bug #32590974)
  • Replication: 복제본 서버는 이제 GTID와 관련된 트랜잭션을 적용하고 커밋하기 전에 GTID의 트랜잭션 ID 부분을 확인하고 확인합니다. (Bug #32103192)
  • Replication: 트랜잭션 종속성을 계산하는 데 사용되는 쓰기 집합 해시에 고유한 보조 키가 누락된 경우 다중 스레드 복제본에서 복제가 중지되어 다중 스레드 복제본에서 트랜잭션을 실행할 때 오류가 발생할 수 있습니다. 이제 읽기 집합 및 쓰기 집합에 포함되지 않더라도 쓰기 집합 해시에는 항상 고유한 보조 키가 포함됩니다. (Bug #31636339)
  • JSON: JSON 매개 변수를 예상하여 저장 프로시저에 NULL을 전달하면 디버그 빌드에서 어설션 오류가 발생했습니다. (Bug #23209914)
  • 교착 상태로 인해 XA 트랜잭션이 거부되거나 강제로 롤백된 후 DML 문이 즉시 실행된 경우 복제가 실패할 수 있습니다. (Bug #32707060)
  • mysql_change_user() C API 함수가 COM_CHANGE_USER 패킷을 제대로 구문 분석하지 못했습니다. 이로 인해 mysql_change_user() 호출 이전에 제공되었을 수 있는 선택적 쿼리 특성을 처리하지 못할 수 있습니다. René Cannaò님에게 감사를 표합니다. (Bug #32391415, Bug #102266)
  • 암시적 트랜잭션을 시작할 때 준비된 문을 다시 비교하면 ER_GTID_NEXT_TYPE_UNDEFINED_GROUP 오류가 발생할 수 있습니다. (Bug #32326510, Bug #102031)
  • 전체 텍스트 검색 인덱스가 있는 테이블에 대량의 데이터를 로드하는 동안 메모리 부족 오류가 발생했습니다. 전체 텍스트 검색 보조 테이블에 데이터를 삽입할 때 전체 텍스트 검색 캐시에 할당된 메모리 중 일부가 고려되지는 않았습니다. (Bug #31576731)
  • 인덱스를 온라인으로 빌드할 때 가상 열의 보조 인덱스가 손상되었습니다.UPDATE 문장의 경우 다음과 같이 수정합니다. 인덱스 레코드의 가상 열 값이 NULL로 설정된 경우 클러스터 인덱스 레코드에서 이 값을 생성합니다. (Bug #30556595)
  • 부울 시스템 변수에 음수 값을 할당할 수 있습니다. (Bug #11758439, Bug #50643)