MySQL 5.7.34 릴리즈 노트 2021-04-20

MySQL

MySQL 5.7.34 릴리즈 노트 입니다.

환경 설정 노트 Configuration Notes

  • 이제 CMAKE_BUILD_TYPE CMake 옵션은 RelWithDebInfo 빌드 유형과 같은 Release 빌드 유형을 지원하지만 빌드 크기를 줄이기 위해 디버깅 정보를 생략합니다. (Bug #27874068, Bug #32287863)

패키지 노트 (Packaging Notes)

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

보안 노트 (Security Notes)

기능 추가 및 수정 (Functionality Added or Changed)

  • Microsoft Windows: named_pipe_full_access_group 시스템 변수는 이제 빈 문자열('')로 기본 설정되므로 명명된 파이프 연결이 안전해집니다. 이전에는 ‘everyone‘가 기본값이었습니다. 올바른 Windows 로컬 그룹 이름을 대체할 수 있습니다.

버그 수정 (Bugs Fixed)

  • InnoDB: MySQL 5.7에 샤드화된 ‘rw_lock_stats’ 카운터가 도입되어 CPU 캐시 효율성이 저하되었습니다. MySQL 5.7에서 이 문제를 해결하기 위해 샤딩 방법이 변경되었습니다. 최적의 성능을 위해 MySQL 8.0에서는 ‘rw_lock_stats’ 카운터가 제거됩니다. (Bug #32225367)
  • InnoDB: 인덱스된 가상 열 및 인덱스된 외부 키 제약 조건 열이 있는 하위 테이블에서 계단식 업데이트를 시작한 상위 테이블의 삭제 작업으로 인해 가상 열이 손상되었습니다. (Bug #32124113)
  • InnoDB: AHI(Adaptive Hash Index) 래치가 큰 테이블을 자르는 스레드에 의해 공유 모드로 유지되어 뮤텍스가 다른 스레드를 기다립니다. AHI 래치가 필요하지 않았으며 제거되었습니다. (Bug #32032897)
  • InnoDB: 테이블 공유 인스턴스(m_share object) 및 사전 테이블 인스턴스의 열기 및 닫기 시퀀스가 오래된 사전 인덱스를 가리킬 수 있는 이전 m_share 개체에 액세스하지 못하도록 수정되었습니다.Yuxiang Jiang 에게 감사드립니다. (Bug #31899685)
  • InnoDB: 온라인 DDL 행 로그를 읽을 때 수행한 불필요한 암호화 상태 확인으로 인해 온라인 ALTER TABLE 작업이 실패하고 “Incorrect key file for table” 오류가 발생했습니다. (Bug #31529221, Bug #99938)
  • Replication: 보존 기간이 만료되어 시작 시 이전 이진 로그 파일을 모두 삭제한 경우 새 이진 로그 파일에 복제 오류가 발생할 수 있는 빈 Previous_gtids 이벤트가 포함되어 있습니다. 이제 시작 시 생성된 새 이진 로그 파일에 이전 GTID 세트를 쓴 후에만 이전 이진 로그 파일이 삭제되도록 초기화 순서가 변경되었습니다. (Bug #32134875, Bug #101533)
  • Replication: 이진 로그 파일의 보존 기간이 만료되어 시작 시 제거된 경우 손실된 GTID와 관련된 어설션이 디버그 빌드에서 제기되었습니다.(Bug #32008512, Bug #101137)
  • Replication: 서로 다른 클라이언트가 시스템 변수를 업데이트하고 읽는 동안 이진 로그 파일이 순환되면 교착 상태가 발생할 수 있습니다. (Bug #31774422)
  • Replication: 복제본의 SQL 스레드에 대한 ‘SHOW PROCESSLIST’ 문 출력에 복제본이 실제로 따라잡혔을 때 현재 적용된 마지막 쿼리가 표시되는 경우가 있습니다. (Bug #30521198, Bug #97560)
  • MySQL Enterprise Edition용 도커 컨테이너는 더 이상 루트 권한으로 실행할 필요가 없습니다. (Bug #32472242)
  • 쿼리 문자열이 다시 작성되기 전에 표시되었습니다. (Bug #32335263, Bug #32628376)
  • ‘libedit’ 라이브러리를 사용하여 컴파일된 빌드의 경우 mysql 클라이언트가 --default-character-set=utf8 옵션으로 호출된 경우 libedit은 다중 바이트 문자의 입력을 거부했습니다. (Bug #32329078, Bug #32583436, Bug #102806)
  • Windows에서 결과 집합이 크면 mysql 클라이언트가 예기치 않게 종료될 수 있습니다. (Bug #32316323, Bug #102051)
  • 내부 큐를 잘못 잠그면 mysqlpump가 예기치 않게 종료될 수 있습니다.(Bug #32067013)
  • 이제 그룹 복제가 중지되면 ‘group_replication_applier’ 채널에 START REPLICA SQL_THREADSTOP REPLICA SQL_THREAD 문을 사용할 수 있습니다. 이렇게 하면 운영자는 서버를 그룹에 다시 가입시킬 필요 없이 그룹을 떠난 서버에 적용되지 않은 나머지 트랜잭션을 적용할 수 있습니다. (Bug #32027612, Bug #32414767)
  • mysql 클라이언트가 배치 모드에서 사용된 경우 파서는 USE로, USE 데이터베이스 이름이 인용될 때 DROP DATABASE로 혼동될 수 있습니다. (Bug #32015466, Bug #101124)
  • 서브쿼리의 ORDER BY 절을 최적화하는 동안 외부 SELECT에서 참조되는 서브쿼리 트리를 정리할 가능성이 있어 조기 종료가 발생할 수 있습니다. (Bug #31721430)
  • mysql.func 시스템 테이블의 잘못된 이름으로 인해 예기치 않은 서버 동작이 발생할 수 있습니다. (Bug #31674599)
  • 세션에서 자체 감사를 비활성화할 수 있습니다. (Bug #31630954)
  • 저장된 프로그램 로컬 변수를 잘못 처리하면 예기치 않은 서버 동작이 발생할 수 있습니다. (Bug #30366310)
  • 플러그인을 제거하면 준비된 문의 후속 실행에 영향을 미칠 수 있습니다. (Bug #29363867)