MySQL 8.0 Release Note

8.0.36 변경 사항 (2024-01-16 GA)

Estimated reading: 1 minute 113 views

공식 문서: Changes in MySQL 8.0.36 (2024-01-16, General Availability)

감사 로그 관련 사항

경우에 따라 audit_log_read(audit_log_read_bookmark())를 호출하면 메모리 부족 오류가 발생할 수 있었습니다. (버그 #35957453)

컴파일 관련 사항

Microsoft Windows: MySQL은 Visual Studio 2022를 사용하여 올바르게 컴파일되지 않았습니다. (버그 #35967676)

-DWITH_ZLIB=system 체크가 개선되었습니다. (버그 #35968195)

Linux에서의 컴파일을 위해 OpenSSL 3 라이브러리에 대해 no-error=deprecated-declarations 플래그를 no-deprecated-declarations로 변경했습니다.
karry zhang의 기여에 감사드립니다. (버그 #112209, 버그 #35755328)

옵티마이저 관련 사항

채택된 해시 알고리즘에서, HASH 필드를 사용하여 유일성을 체크할 때 성능이 저하되었습니다. (버그 #109548, 버그 #34959356)

패키징 관련 사항

중요한 변경 사항: MySQL 다운로드 가능한 패키지의 서명에 사용되는 GnuPG 빌드 키(A8D3785C)가 업데이트되었습니다. 이전 GnuPG 빌드 키(3A79BD29)는 2023년 12월 14일에 만료되었습니다. GnuPG 서명 검사를 사용하여 MySQL 다운로드 가능한 패키지의 무결성과 신뢰성을 확인하는 방법이나 공개 GnuPG 빌드 키의 사본을 얻는 방법에 대해서는 GnuPG를 사용한 서명 검사를 참조하십시오.
GnuPG 키의 업데이트로 인해, repo.mysql.com을 사용하도록 설정된 시스템은 apt 또는 yum을 사용하여 MySQL 8.0.36 이상 또는 MySQL 8.3.0 이상으로 업그레이드할 때 서명 검증 오류를 보고할 수 있습니다. 이 문제를 해결하려면 다음 방법 중 하나를 사용하십시오:

  1. https://dev.mysql.com/downloads/에서 MySQL APT 또는 YUM 리포지토리 설정 패키지를 수동으로 다시 설치합니다.
  2. MySQL GnuPG 공개 키를 다운로드하여 시스템 GPG 키링에 추가합니다.

Performance Schema 관련 사항

스토어드 프로그램을 실행할 때 퍼포먼스 스키마 계측으로 인해 불필요한 오버헤드가 발생했습니다.
이번 릴리스에서는, statement/sp/stmt를 제외한 모든 스토어드 프로시저 마이크로 명령어(statement/sp/%)가 기본적으로 비활성화되었습니다. (버그 #27934653)

퍼포먼스 스키마 스테이트먼트 계측의 성능이 향상되었습니다. 구체적으로, MESSAGE_TEXT 데이터 수집이 보다 효율적으로 이루어졌습니다. (버그 #112621, 버그 #35916912)

플러거블 인증

이번 릴리스부터, PAM 인증 플러그인의 디버깅에 사용되는 AUTHENTICATION_PAM_LOG 환경 변수의 동작이 다음과 같이 변경됩니다:

  • AUTHENTICATION_PAM_LOG를 임의의 값으로 설정하면(다음 항목에서 설명하는 경우를 제외하고), 진단 메시지에 비밀번호가 포함되지 않습니다.
  • 진단 메시지에 비밀번호를 포함하려면, AUTHENTICATION_PAM_LOG=PAM_LOG_WITH_SECRET_INFO로 설정합니다.

자세한 내용은 PAM 인증 디버깅을 참조하십시오. (버그 #74313, 버그 #20042010)

추가 및 변경된 기능

중요한 변경 사항: OpenSSL 라이브러리가 번들된 플랫폼에 대해, MySQL 서버에 링크된 OpenSSL 라이브러리가 버전 3.0.12로 업데이트되었습니다. OpenSSL 버전 3.0.12에서 수정된 문제에 대해서는 https://www.openssl.org/news/cl30.txt를 참조하십시오. (버그 #36033684)

버그 수정

성능, InnoDB: mySQL 8.0.30에서 수행된 리팩터링의 의도하지 않은 결과로 InnoDB 적응형 해시 인덱스에서 사용하는 해싱 함수가 더 비싸졌습니다. (버그 #111538, 버그 #35531293)
참조: 이 문제는 다음의 회귀입니다: 버그 #81814, 버그 #16739204, 버그 #23584861.

InnoDB: 적응형 해시 인덱스(AHI)에서 사용되는 해시 함수가 개선되어 성능이 향상되었습니다. (버그 #35449386)

InnoDB: 시작 시 변경 버퍼 엔트리가 존재하는 경우, 비활성화된 innodb_validate_tablespace_paths 옵션이 강제되지 않고, 대신 MySQL 서버는 모든 테이블스페이스의 검증을 계속합니다. 그렇지 않으면 보조 인덱스가 손상될 수 있었습니다. (버그 #35208990)

InnoDB: DDL과 DML의 동시 작업 중에 온라인 로그가 너무 커지면 DDL이 실패할 수 있었습니다. 이 문제를 방지하기 위해 버퍼 처리가 개선되었습니다. (버그 #35115601)

복제: Performance Schema 메모리 계측에서 Log_event 이벤트에 사용되는 현재 바이트 수 계산과 관련된 문제로 인해, 복제본의 sql/replica_sql 스레드가 끝없이 증가하고 크기가 줄어들지 않는 것처럼 보였습니다. (버그 #35546877)

복제: CREATE TABLE AS SELECT의 복제가 진행되는 중에 DB 복제를 중지하면 서버가 종료되었습니다. (버그 #33934013)

그룹 복제: 복제 채널이 오류 상태에 있을 때 START GROUP_REPLICATION을 강제로 실행하면 서버가 예기치 않게 종료될 수 있었습니다. (버그 #34724344)

Enterprise Linux RPM을 빌드할 때, 빌드 스크립트가 최신의 strip 명령어(/opt/rh/gcc-toolset-12 아래)를 가리키도록 업데이트되어, 해당 dwz 도구를 사용할 수 있음을 확인하게 되었습니다. (버그 #36086236)

경우에 따라 부적절하게 초기화된 플러그인에 의해 설치된 로드 가능한 함수를 호출하면, 예기치 않은 셧다운이 발생했습니다. (버그 #35889261)

handler.cchandler::ha_index_end()에서 어설션 오류가 발견되어 수정되었습니다. (버그 #35877600)

MYSQL_FIREWALL 플러그인이 커스텀 스키마를 사용하도록 설정되었지만, 서버 시작 시 적절히 초기화되지 못한 경우, 이후의 오류나 장애가 발생할 수 있었습니다. (버그 #35853298)

GROUP BY를 사용하는 일부 중첩된 쿼리가 올바르게 처리되지 않았습니다. (버그 #35846402, 버그 #35945822)
참고: 이 문제는 버그 #32918400의 회귀입니다.

제한된 경우이지만, 데이터를 MD5() 암호화 함수에 전달하면 서버가 중단될 수 있었습니다. (버그 #35764496)

뷰에서의 일부 서브쿼리가 항상 올바르게 처리되는 것은 아니었습니다. (버그 #35738548)

다수의 테이블에 대한 일괄 이름 변경 등의 작업을 수행하는 동안 CREATE TABLE ... SELECT와 같은 데이터 정의 문을 동시에 실행하면 서버가 예기치 않게 중단될 수 있었습니다. (버그 #35735937)

UPDATE HISTOGRAM이 모든 경우에 기대대로 동작하지 않았습니다.
UPDATE HISTOGRAM이 모든 경우에 기대대로 동작하지 않았습니다. (버그 #35710404)

EXPLAIN ANALYZE가 항상 예상한 결과를 제공하지 않았습니다. (버그 #35710383)

서브쿼리 해석 중에 오류가 발생했습니다. (버그 #35710373)
참고: 이 문제는 버그 #35184353의 회귀입니다.

사용된 테이블 정보의 갱신이 테이블이 열린 직후 다음 실행의 시작까지 연기되어, 모든 테이블 객체가 적절한 상태에 있음을 확인할 수 있습니다. (버그 #35710213)

일부 HAVING 쿼리에서 예상한 결과를 얻지 못했습니다. (버그 #35710183)

일부 재귀 CTE가 기대대로 작동하지 않았습니다. (버그 #35654240)

OVER (PARTITION ...)을 사용하는 일부 쿼리가 항상 정상적으로 실행되는 것은 아니었습니다. (버그 #35627798)

ROLLUP을 사용하는 일부 서브쿼리가 항상 올바르게 처리되는 것은 아니었습니다. (버그 #35621842, 버그 #35804794)

Windows 설치 MSI 인터페이스에서 CPACK_COMPONENT_GROUP_INFO_DISPLAY_NAME 설정 옵션을 제거했습니다. INFO_BININFO_SRC 파일이 항상 설치되도록 했습니다. (버그 #35529968)

윈도우 함수를 사용하는 일부 쿼리가 항상 올바르게 처리되는 것은 아니었습니다. (버그 #35471471)

디버그 빌드에서, 대소문자가 변경된 열 이름으로 인해 서버가 종료될 수 있었습니다. (버그 #35449266)

MySQL 서버 및 MySQL 클러스터의 패키지에 INFO_SRC 파일의 두 개의 복사본이 포함되어 있었습니다. (버그 #35400142)

prepared statement 내의 SELECT 문이 연속해서 실행될 때 예상치 못한 다른 결과를 반환했습니다. (버그 #35340987, 버그 #35846585, 버그 #35846873)
참고: 이 문제는 버그 #35060385의 회귀입니다.

일부 SELECT DISTINCT 쿼리가 항상 올바르게 처리되는 것은 아니었습니다. (버그 #33725447)

sql/field.cc의 어설션 오류를 제거했습니다. (버그 #112503, 버그 #35846221)

SELECT AVG(...) OVER (PARTITION BY ...) 형식을 가진 일부 쿼리가 항상 올바르게 처리되는 것은 아니었습니다. (버그 #112460, 버그 #35710179, 버그 #35845413)

공식 MySQL Yum 또는 SUSE 리포지토리를 사용하여 MySQL을 업그레이드하면, 항상 MySQL 서비스가 활성화됩니다. 앞으로는 설치 후에만 서비스가 활성화되며, 업그레이드 중에는 기존 값이 유지되며, 기존 값을 수정하지 않습니다. (버그 #112382, 버그 #35823558)

조건 내의 열이 대체되어야 하는 파생 조건 푸시다운을 포함하는 쿼리의 경우, 대체 항목이 ROLLUP으로 래핑되어 있고, 일치하는 항목이 ROLLUP으로 래핑되지 않은 경우, 일치하는 항목이 존재함을 알고 있어도 일치하는 항목을 찾을 수 없었습니다. (버그 #111665, 버그 #35498378, 버그 #35570065, 버그 #35826171)
참고: 이 문제는 버그 #33349994의 회귀입니다.

스토어드 프로시저 내에서 윈도우 함수를 사용하여 결과에 대해 산술 연산을 수행하면, 프로시저가 처음 실행될 때는 올바른 결과를 얻었지만, 이후의 모든 호출에서는 잘못된 결과가 반환되었습니다. (버그 #110983, 버그 #35380604)
참고: 버그 #110847, 버그 #35340987도 참조하십시오.

MySQL이 libc의 musl 버전을 사용할 때 올바르게 빌드되지 않았습니다.
기여해 주신 샘 제임스에게 감사드립니다. (버그 #110808, 버그 #35330950)

경우에 따라 뷰에서의 선택으로 인해 소량의 메모리 누수가 발생할 수 있었습니다. (버그 #103133, 버그 #32764586)

Leave a Comment



이 문서 공유

8.0.36 변경 사항 (2024-01-16 GA)

링크 복사

CONTENTS