‘keyring_aws’ 플러그인이 최신 AWS SDK를 사용하도록 업데이트되어 OpenSSL 1.1과 호환됩니다.
패키징 노트 (Packaging Notes)
시스템 ‘curl’ 라이브러리에 연결하지 않고 ‘curl’을 포함하는 이진 패키지는 이제 ‘curl’ 7.64.0을 사용합니다. (Bug #29357198)
X 플러그인 노트 (X Plugin Notes)
윈도우즈에서 X 플러그인은 불필요하거나 불충분한 정보를 제공하는 일부 메시지를 기록했습니다. 메시지가 적절하게 제거되거나 개선되었습니다. (Bug #27839153)
기능 추가 및 변경 (Functionality Added or Changed)
Microsoft Windows: 이제 Windows에서 MySQL 명명된 파이프를 사용하여 연결한 경우 명명된 파이프에서 커넥터가 요청할 수 있는 권한이 제한된다는 새로운 경고 메시지가 DBA에게 표시됩니다.이전에 ‘named_pipe_full_access_group’ 시스템 변수는 기본적으로 기본 제공 Windows ‘Everyone’ 그룹(SID S-1-1-0)에 매핑되는 값으로 설정되었습니다. 그러나 이 그룹은 이상적이지 않으므로 MySQL 명명된 파이프에 대한 더 적은 권한을 요청할 수 없는 커넥터의 구성원 자격을 제한하는 그룹으로 바꿔야 합니다.새 주의(warning)는 ‘named_pipe_full_access_group’에 할당된 문자열 값이 ‘everyone‘(또는 윈도우즈 시스템 언어 등가)이고 명명된 파이프가 활성화된 경우 시작 시 오류 로그에 기록됩니다. 또한 시스템 변수가 런타임에 ‘Everyone’ 그룹으로 재설정될 경우 경고 메시지가 오류 로그에 기록되고 클라이언트에 표시됩니다.
버그 수정 (Bugs Fixed)
InnoDB: rw-lock 구현 시 메모리 장벽이 부족하여 ARM에 교착 상태가 발생했습니다.Arm Technology의 Yibo Cai에게 기여해 주셔서 감사합니다. (Bug #29508001, Bug #94699)
InnoDB: MySQL 서버가 실행되는 동안 시스템 시간을 수동으로 변경하면 페이지 클리너 스레드가 지연되었습니다. (Bug #29138644, Bug #93708)
InnoDB: 로그를 적용하는 동안 ‘OPTIMIZE TABLE’ 작업 후 가상 열 인덱스 업데이트를 확인하기 전에 ‘InnoDB’가 가상 열을 채우지 않았습니다. (Bug #28834208)
InnoDB: 생성된 가상 ‘BLOB’ 열과 관련된 ‘INSERT’ 작업으로 인해 보조 인덱스가 잘못된 값으로 업데이트되었습니다.(Bug #28652826)
InnoDB: 전체 텍스트 캐시 크기가 전체 텍스트 캐시 크기 제한을 초과할 경우 데이터가 동기화될 때 수행된 전체 텍스트 캐시 잠금이 해제되지 않았습니다.(Bug #25289359)
InnoDB: 동시 삽입 작업을 수행하는 동안 다른 ‘auto_increment_increment’ 값을 사용하는 클라이언트 세션에서 중복 키 오류가 발생할 수 있습니다.(Bug #15851528, Bug #67526)References: Reverted patches: Bug #14049391, Bug #65225.
Partitioning: 교환할 파티션이 분할되지 않은 테이블과 동일한 행 형식을 사용하는 경우에도 분할된 테이블에 다른 행 형식을 사용하는 파티션이 있을 때 파티션과 테이블 간에 일치하지 않는 특성 ‘ROW_FORMAT’ 오류가 발생하여 ALTER TABLE ... EXCHANGE PARTITION 가 실패했습니다. (Bug #28687608)
Replication: 한 MySQL Server 인스턴스에서 생성된 이벤트가 다른 인스턴스의 이진 로그에 기록될 때 두 번째 서버는 첫 번째 서버가 자신과 동일한 수의 이진 로그 이벤트 유형을 지원한다고 암시적으로 가정합니다. 그렇지 않은 경우 이벤트 헤더가 잘못 처리되었습니다. 이제 문제가 해결되었습니다. 페이스북의 도움에 감사드립니다. (Bug #29417234, Bug #94500)
Replication: 그룹 복제(Group Replication)에서 구성원에 가입하면 가장 높은 버전의 구성원을 포함하여 다른 모든 구성원에 대해 확인했기 때문에 그룹에 이미 동일한 버전의 구성원이 있더라도 기존 복제 그룹과 호환되지 않는 것으로 잘못 식별될 수 있습니다. 회원 가입 시 자체 버전도 호환성 검사에 포함시켰습니다. 이제 가입하는 멤버는 가장 낮은 버전의 기존 그룹 멤버와 비교만 하고, 자신의 버전은 세지 않습니다. (Bug #29390946, Bug #94429)
Replication: 이진 로그 파일이 초기화되기 전에 FLUSH LOGS 문이 실행된 경우 문은 초기화되지 않은 파일에 이진 로그 순환 이벤트를 기록하려고 시도한 것입니다. 이제 서버는 먼저 이진 로그 파일이 사용 가능한지 확인합니다. (Bug #29201665)
Replication: 서버 재시작 후 마스터에서 MEMORY 테이블이 암묵적으로 삭제되면 마스터는 DELETE 문을 이진 로그에 기록하여 슬레이브도 테이블을 비웁니다. 이제 DELETE 문의 원인을 쉽게 식별할 수 있도록 생성된 이벤트에 이진 로그에 설명이 포함됩니다. 다니엘 판 이든에게 감사드립니다. (Bug #29157796, Bug #93771)
Replication: 문 기반(statement-based) 복제가 사용 중인 경우, no-op 트랜잭션이 UPDATE 작업과 COMMIT 작업 사이에 있을 때 서버에 대해 super_read_only 가 ON으로 설정된 경우 트랜잭션이 이진 로그에 기록되고 GTID가 할당되었습니다. 이 상황에서는 이제 트랜잭션이 차단됩니다. MySQL 8.0부터는 트랜잭션이 진행되는 동안에는 super_read_only 값을 변경할 수 없습니다. (Bug #29009092, Bug #93440)
Replication: 그룹 복제용 그룹 통신 엔진(XCom, Paxos 변형)이 메모리 부족 오류를 적절한 방법으로 처리하지 못했습니다. 메시지에 대한 페이로드의 복사본을 만들기 위해 메모리를 할당할 수 없는 경우 오류가 기록되었지만 메시지는 여전히 null 페이로드와 함께 전송되었습니다. 수신 구성원의 GCS(그룹 통신 시스템)가 메시지를 비어 있는 것으로 폐기했으며, 수신 구성원의 XCOM 인스턴스가 이 작업을 수락하고 재시도하지 않아 메시지를 효과적으로 건너뜁니다. 이로 인해 수신 구성원에 설정된 GTID가 그룹에서 분산되어 복제 오류가 발생했습니다. 이제 메모리 부족 오류가 발생하면 XCom이 정상적으로 종료되므로 이러한 상황이 발생할 수 없습니다. (Bug #28702320)
Replication: 이진 로그의 쿼리 로그 이벤트에서 DROP TABLE 및 DELETE 문의 실행에 사용된 스레드 ID가 잘못 식별되었거나 전혀 식별되지 않았습니다. 임시 테이블(세션마다 다르므로 올바른 스레드 ID가 필요함)이 포함된 다중 스레드 복제 슬레이브에서 이러한 누락으로 인해 시점 복구를 위해 mysqlbinlog를 사용하여 이진 로그를 재생할 때 오류가 발생했습니다. 이제 스레드 ID가 올바르게 설정되었습니다. (Bug #28642318, Bug #92398)
Replication: 슬레이브 서버가 테이블 (master_info_repository=TABLE) 에 마스터 상태 및 연결 정보를 기록할 때(MySQL 8.0의 기본값), 서버가 슈퍼 읽기 전용 모드(super_read_only=ON)인 경우 종료 시 mysql.slave_master_info 테이블이 업데이트되지 않았습니다. 지금은 오류 로그에 오류가 기록되지 않았지만 마스터 로그 파일 및 마스터 로그 위치 정보가 오래되어 서버를 시작한 후 복제가 실패했습니다. 종료 시 마스터 정보 로그를 업데이트하는 스레드는 이제 다른 복제 쓰레드와 마찬가지로 읽기 전용 검사에서 제외되므로 서버가 슈퍼 읽기 전용 모드인 경우에도 테이블을 업데이트할 수 있습니다. 종료 중인 슬레이브에 대한 오류 처리도 개선되어 슬레이브 상태 로그에 쓰지 못하면 오류 로그에 오류가 발생합니다. (Bug #27675107, Bug #89987)
저장된 프로그램 로컬 개체를 정렬하는 동안 지나치게 엄격한 어설션이 발생할 수 있습니다.(Bug #29759547, Bug #95062)
RPM 패키지에서 설치하면 잘못된 사용 권한이 있는 오류 로그가 발생할 수 있습니다. (Bug #29702462)
감사 로그 암호화를 사용하도록 설정하면 서버가 종료될 수 있습니다. (Bug #29549327)
Debian 및 Ubuntu에서 MySQL 패키지가 네이티브 MySQL 패키지에서 업그레이드한 후 ‘mysql.service’를 사용하도록 설정하지 않았습니다. (Bug #29435592)
오류가 발생했을 때 서버에서 공유 메모리 연결을 제대로 닫지 않아 예기치 않은 서버 동작이 발생할 수 있습니다. (Bug #29435426)
개발 구성 요소를 선택하지 않은 경우 MySQL Installer에서 OpenSSL DLL 종속성을 설치하지 않았습니다.(Bug #29423421, Bug #94168, Bug #30199579, Bug #96573)
파서가 특정 다중 문 쿼리에 대한 메모리를 누수할 수 있습니다.(Bug #29419820)
‘CREATE USER’ 및 ‘ALTER USER’가 IDENTIFIED WITH *auth_plugin* AS '*hash_string*' 구문과 함께 사용될 때 해시 인증 문자열의 유효성을 검사하지 않았습니다. (Bug #29395944)
VARCHAR 열에 인덱스가 포함되어 있고 MySQL 5.7.23 이전에 생성된 ‘InnoDB’ 테이블의 경우 MySQL 5.7.23 이상으로 업그레이드한 후 테이블 재구축으로 수행되어야 하는 일부 간단한 ALTER TABLE문을 수행했습니다. (Bug #29375764, Bug #94383)
생성된 열이 있는 테이블에서는 HANDLER 문이 항상 올바르게 작동하지 않습니다. (Bug #29300049)
클라이언트/서버 프로토콜의 세션 추적 정보가 잘못 처리될 수 있습니다.(Bug #29297652)
audit_log 필터링 작업에서 메모리 누수가 발생할 수 있습니다. (Bug #29201747)
열에 외부 키 관계에 기본 열이 있는 경우 가상 생성 열에 정의된 인덱스를 업데이트하지 못할 수 있습니다. (Bug #29127203, Bug #93670)
일부 성능 스키마 테이블을 삭제하는 권한이 잘못 확인되었습니다. (Bug #29010031)
ORDER BY 가 포함된 파생 테이블을 사용한 쿼리가 항상 올바르게 처리되는 것은 아닙니다. (Bug #28942965)
생성된 열에 의한 인덱스 전용 액세스에서 기본 열을 제외하지 않았습니다. (Bug #28652733)참조: See also: Bug #29664369. 이 문제는 Bug #23169112 의 회귀입니다
스레드 프로세스 눈금 시간이 최대 허용 값을 초과하면 스레드 풀 그룹이 차단될 수 있습니다. 이제 눈금 시간이 더 큰 데이터 유형을 사용하여 더 큰 값을 허용합니다. (Bug #28072609)
MySQL은 OpenSSL 세션 티켓을 지원하지 않지만 이를 OpenSSL에 알리도록 SSL_OP_NO_TICKET 플래그를 설정하지 않았습니다. 이제 플래그가 설정되었습니다. (Bug #27655493)
‘audit_null’ 플러그인이 null 이벤트 레코드를 제대로 검사하지 않았습니다. (Bug #27638290)
UpdateXML()가 항상 메모리를 제대로 확보하지 못한 경우도 있습니다.(Bug #27312862)
mysql.plugin 시스템 테이블의 name 열에 값이 비어 있으면 시작 중에 서버가 종료됩니다.(Bug #27302459)
thread_pool 플러그인을 사용하도록 설정한 경우 성능 스키마 status_by_thread 테이블에 데이터가 없습니다.(Bug #25933891)
INSTALL PLUGIN 문이 공유 라이브러리 이름에 잘못된 UTF-8 문자를 포함하면 서버가 중단되거나 디버그 빌드에서 어설션이 발생합니다. (Bug #14653594, Bug #23080148, Bug #27167197)
다른 세미조인 네스트의 내부 테이블은 구체화 중에 인터리빙되었으며, 다른 질의 계획을 사용할 때 동일한 질의에 대해 다른 결과를 초래할 수 있습니다. 이러한 문제가 발생하지 않도록 이러한 인터리빙을 방지하는 검사가 추가됩니다.(Bug #92809, Bug #28835179)
TIMESTAMP 열에 대한 ‘GROUP BY’와 관련된 쿼리로 인해 키(ER_DUP_ENTRY) 오류가 중복되었습니다. 이 문제는 TIMESTAMP 값이 지정된 표준 시간대 설정을 사용하여 테이블에 삽입되고 나중에 표준 시간대 설정을 변경한 후 이 값을 가져올 때 발생했습니다. 최소 삽입된 TIMESTAMP 값 중 일부가 새 시간대에서 표준 시간에서 일광 절약 시간(DST)으로 변경되는 시간 동안 발생하며, 이 시간 동안 동일한 TIMESTAMP 값이 두 번 존재할 수 있습니다. 이제 서버가 DUPLICATE ENTLE FOR KEY ‘group_key‘ 오류를 반환할 때, 그룹화에 TIMESTAMP 열이 포함된 경우, 대신 DST가 있는 시간대에 대해 시간적 그룹화는 결정적이지 않습니다.라는 오류가 발생합니다. 이 쿼리를 위해 UTC로 전환하는 것을 고려하십시오.또한 이 문제를 방지하기 위해 서버 SQL 모드의 일부로 하나 이상의 MODE_NO_ZERO_IN_DATE, MODE_NO_ZERO_DATE 또는 MODE_INVALID_DATES 함께 explicit_defaults_for_timestamp 를 ‘ON’으로 설정하는 것이 좋습니다.(Bug #90398, Bug #27970159)