MySQL 8.0.16 릴리즈 노트 2019-04-25 #3

MySQL

MySQL 8.0.16 릴리즈 노트 #3 내용입니다.

버그 수정 (Bugs Fixed)

  • NDB Cluster: 또한 테이블 액세스 유형 eq_ref로 실행된 쿼리의 EXPLAIN 는 쿼리에 대해 조건 푸시다운이 지원되지 않는 경우에도 푸시다운 상태를 나타낼 수 있습니다. 이제 NDB가 가능한 푸시다운 최적화 조건을 확인하기 전에 액세스 유형을 확인합니다. 이 수정은 NDB가 이전과 같이 푸시 조건을 계속 지원하는 푸시 조인의 일부인 테이블 처리에는 영향을 주지 않습니다. (Bug #27429615)참조 : 참조 항목 : Bug #27397802, Bug #27808758, Bug #90301.
  • InnoDB: 시작할 때 테이블 영역 암호화 실행 취소를 활성화한 후 테이블 영역 실행 취소가 암호화되지 않은 상태로 남아 있습니다. (Bug #29477795)
  • InnoDB: MySQL 8.0.14에서 테이블 영역 DDL 실행 취소 지원으로 도입된 문제가 있는 매크로가 수정되었습니다. (Bug #29324132, Bug #94243)
  • InnoDB: 잘못된 범위에서 정의된 정적 스레드 로컬 변수는 스레드 종료 시 해제되지 않았습니다.(Bug #29305186)
  • InnoDB: performance_schema.data_locks LOCK_DATA 열에는 고유한 보조 인덱스에 배치된 잠긴 레코드의 보조 인덱스 값만 표시되었으며, 이는 식별된 레코드의 고유성을 보장하기에 충분하지 않았습니다. 이제 잠긴 레코드의 클러스터된 인덱스 열 값이 추가됩니다. (Bug #29296645)
  • InnoDB: XA 트랜잭션 복구에 롤백 세그먼트를 사용하는 트랜잭션 수가 잘못되어 테이블 영역 잘라내기 작업이 진행되지 못하고 삭제 스레드가 테이블 영역 취소 확인 중 빈 상태로 남아 있습니다. (Bug #29273194)참조 : 이 이슈는 Bug #29273194 의 회귀 입니다.
  • InnoDB: 테이블당 압축 파일 테이블의 공간 ID를 검색하지 못한 후 시작 시 잘못된 어설션이 발생했습니다. 잘못된 어설션 코드가 제거되었습니다.(Bug #29221385, Bug #93760)
  • InnoDB: 최적화된 InnoDB 내부 임시 테이블이 인플레이스 UPDATE 작업을 지원하지 않아 삭제 표시된 레코드 수가 지속적으로 증가했습니다. 삭제 표시된 레코드의 수가 많으면 쿼리 실행 시간이 예상보다 길어질 수 있습니다. (Bug #29207450)
  • InnoDB: 동일한 무게의 트랜잭션에 대한 원래 FIFO 순서를 보존하기 위해 CATS(Contention-Aware Transaction Scheduling) 알고리즘의 ‘std::sort’ 함수가 ‘std::stable_sort’ 함수로 대체되었습니다.(Bug #29058967)
  • InnoDB: 잘못 초기화된 변수 때문에 미리 쓰기가 예상대로 작동하지 않았습니다.Yuhui Wang님께 감사드립니다. (Bug #29028838, Bug #93442)
  • InnoDB: 생성된 열에 대한 기본 열 정보가 저장되지 않았습니다. (Bug #29021730)
  • InnoDB: 정렬 규칙을 사용하여 불필요하게 비교된 보조 인덱스에 대한 암묵적인 잠금 검사입니다.(Bug #29010725)
  • InnoDB: 최근에 설정을 수정했기 때문에 innodb_flush_method O_DIRECT_NO_FSYNC 설정과 관련된 어설션 코드가 더 이상 유효하지 않습니다. 어설션 코드가 수정되었습니다. (Bug #29007731)참조 : 참조 항목 : Bug #27309336.
  • InnoDB: 실행 취소 로그 암호화를 사용하도록 설정한 상태에서 서버를 시작할 때 새로 작성된 실행 취소 테이블스페이스에 대한 마스터 키가 서버 UUID 없이 생성되었습니다. 서버 UUID가 아직 생성되지 않은 경우 테이블스페이스 실행 취소에서 DefaultMasterKey를 사용해야 합니다.(Bug #29006275)
  • InnoDB: 데이터 사전 코드가 반환된 데이터 사전 개체를 확인하지 않았습니다. 이로 인해 Null 포인터 액세스로 인해 서버가 종료될 수 있습니다. (Bug #28977444, Bug #93362)
  • InnoDB: 실패한 CREATE UNDO TABLESPACE 작업으로 인해 실행 취소 테이블 영역 파일이 남아 있습니다. (Bug #28966457)
  • InnoDB: 파일 이름의 문자가 잘못되어 Windows에서 CREATE UNDO TABLESPACE 문이 실패했습니다. 오류로 인해 OS_FILE_ON_ERROR_NO_EXIT 가 누락되어 중단 상태가 발생했습니다.실행 취소 테이블 영역 파일을 생성하는 호출의 IT 특성입니다. (Bug #28955676)
  • InnoDB: innodb_undo_log_encrypt 변수 값을 수정한 것은 차단 작업이 아니므로 작업이 성공적으로 완료된 것처럼 보이는 경우 수정 내용이 백그라운드 스레드에 의해 반환될 수 있습니다. (Bug #28952870)
  • InnoDB: 잘못된 디버그 어설션이 temptable::Handler::primary_key_is_clustered 함수에서 제거되었습니다. (Bug #28949332)
  • InnoDB: ALTER TABLE ... EXCHANGE PARTITION작업에서 데이터 사전의 ‘table_id’ 열 값이 제대로 업데이트되지 않았습니다.(Bug #28927005)
  • InnoDB: innochecksum 유틸리티에서 발견된 메모리 누수가 제거되었습니다. (Bug #28917614, Bug #93164)
  • InnoDB: 가상 열에 인덱스를 만들지 못한 후 DDL 작업으로 인해 어설션 오류가 발생했습니다. (Bug #28825718)
  • InnoDB: 크기가 128KB 이하인 압축 BLOB의 부분 업데이트 작업에 대해 성능 회귀가 관찰되었습니다. (Bug #28784301)
  • InnoDB: 집계된 쿼리를 실행하면 ‘Valgrind’ 경고가 발생했습니다. (Bug #28711717)
  • InnoDB: CHECK TABLE 작업으로 인해 어설션 오류가 발생했습니다. 함수를 종료하기 전에 로컬 호출 스택 변수에 대한 포인터가 null로 다시 설정되지 않았습니다. (Bug #28525110)
  • InnoDB: DDL 로그 함수가 ER_TOO_MANY_CONCURRENT_TRXS 오류를 처리하도록 수정되었습니다. (Bug #28523127, Bug #92071)
  • InnoDB: 삭제 스레드가 LOB 데이터 페이지를 해제하지 못했습니다. (Bug #28510599)
  • InnoDB: 일부 DDL 로그 테이블 트랜잭션은 DDL 로그 복구 전에 롤백되지 않았습니다. (Bug #28494969)
  • InnoDB: 테이블 이름을 검색하는 SHOW CREATE TRIGGER 처리 중에 호출된 함수가 예상된 소문자 변환을 수행하지 않았습니다. (Bug #28351038)
  • InnoDB: INFORMATION_SCHEMA.INNODB_FOREIGN TYPE 열에 잘못된 값이 보고되었습니다. (Bug #28315651, Bug #91577)
  • InnoDB: Linux AIO 처리기 함수가 완료된 I/O 이벤트가 성공했는지 확인하지 못했습니다. Wei Zhao님께 감사드립니다. (Bug #27850600, Bug #90402)
  • InnoDB: 트랜잭션이 보조 인덱스에 암묵적인 잠금을 유지하는지 여부를 확인하는 검사에서 어설션 오류가 발생했습니다. 가상 열을 포함하는 보조 인덱스의 열을 변경하지 않는 트랜잭션은 암묵적인 잠금을 유지하도록 잘못 결정될 수 있습니다. (Bug #27491839)
  • InnoDB: 테이블 개체가 백그라운드 스레드로 해제된 후 CREATE TABLE 스레드로 호출된 함수가 테이블 개체에 액세스를 시도했습니다. Yan Huang 님께 감사드립니다. (Bug #27373959, Bug #89126)
  • InnoDB: INSERT ... ON DUPLICATE KEY UPDATE 작업을 동시에 실행하는 두 세션에서 교착 상태가 발생했습니다. 태플의 부분 롤백 중에 다른 세션에서 태플을 업데이트할 수 있습니다. 이 버그에 대한 수정은 Bug #11758237, Bug #17604730, and Bug #20040791 에 대한 수정 사항을 되돌립니다. (Bug #25966845)
  • InnoDB: 조인된 테이블에 액세스하는 데 사용된 메서드가 const인 경우 InnoDB가 일치하는 행의 잠금을 해제하려고 여러 번 시도했습니다. (Bug #20939184)
  • InnoDB: 인덱스를 추가할 때 INFORMATION_SCHEMA.TABLESINDEX_LENGTH 값이 업데이트되지 않았습니다. (Bug #19811005)
  • Partitioning: 잘못된 테이블 식별자를 사용한 이름 유효성 검사로 인해 일부 파티셔닝 DDL 문이 올바르게 거부되었습니다. (Bug #29317007)
  • Partitioning: ALTER TABLE ... COALESCE PARTITION 를 롤백하는 동안 서버가 이 문으로 인해 삭제된 파티션을 잠그고 닫으려고 시도하기도 했습니다. (Bug #28517446)
  • Partitioning: ALGORITHM=INPLACE를 사용하는 ALTER TABLE 문에 의해 분할된 테이블에 추가된 AUTO_INCREMENT 키가 각 파티션에서 다시 시작되었습니다. (Bug #92241, Bug #28573894)
  • Replication: 구성원의 그룹 복제 로컬 주소에 지정된 포트가 현재 사용 중일 때 START GROUP REPLICATION가 발급된 상황을 그룹 복제에서 올바르게 처리하지 못했습니다. (Bug #29347285)
  • Replication: ‘WAIT_FOR_EXECUPTED_GTID_SET()’ 함수가 소수 부분을 포함한 시간 초과 값(예: ‘1.5’)과 함께 사용된 경우, 주조 로직의 오류는 시간 초과 값이 가장 가까운 정수 초로 반올림되고 1초 미만의 값(예: ‘0.1’)은 0으로 반올림되었음을 의미합니다. 이제 반올림 없이 원래 지정된 대로 시간 초과 값이 적용되도록 주조 논리가 수정되었습니다. Dirkjan Bussink 님께 감사드립니다. (Bug #29324564, Bug #94247)
  • Replication: 시스템 변수 group_replication_consistency에 대한 일관성 수준 AFTERBEFORE_ON_PRIMARY_FAILOVER에서 제공하는 일관성 보장이 포함되어 있지 않습니다. BEFOREBEFORE_AND_AFTER 일관성 수준에 이미 암묵적으로 존재했던 이러한 일관성 보증은 이제 AFTER와 함께 제공됩니다. (Bug #29315752, Bug #94213)
  • Replication: Debian 기반 플랫폼(예: Ubuntu)에서 호스트 이름이 127.0.1.1(이러한 플랫폼의 기본값)로 확인되면 기본 설정을 사용하여 클러스터를 만들 수 없습니다. 이제 이러한 상황에서는 클러스터를 생성하고 인스턴스를 추가하기 전에 적절한 인스턴스 검증을 수행합니다. (Bug #29246110)
  • Replication: 차단된 그룹에서 group_replication_force_members에 대해 잘못된 값을 설정한 다음 STOP GROUP_REPLICATION를 발행하면 서버가 예기치 않게 중지될 수 있습니다. (Bug #29119961)
  • Replication: ‘mysql.gtid_executed’ 테이블에 액세스할 수 없는 경우의 MySQL Server 동작이 적절한 오류 응답 및 작업을 제공하도록 리팩터링되었습니다. 이제 MySQL 서버는 서버가 읽기 전용 모드 또는 슈퍼 읽기 전용 모드일 때 ‘mysql.gtid_executed’ 테이블에 쓰기가 허용되므로 이러한 모드에서 이진 로그 파일을 계속 순환할 수 있습니다.쓰기를 위해 ‘mysql.gtid_executed’ 테이블에 액세스할 수 없고 최대 파일 크기(max_binlog_size)에 도달하지 않는 다른 이유로 이진 로그 파일이 순환되는 경우 현재 이진 로그 파일이 계속 사용됩니다. 순환을 요청한 클라이언트에 오류 메시지가 반환되고 서버에 경고가 기록됩니다. 쓰기를 위해 ‘mysql.gtid_executed’ 테이블에 액세스할 수 없고 max_binlog_size에 도달하면 서버는 binlog_error_action 설정에 따라 응답합니다. IGNORE_ERROR를 설정하면 서버에 오류가 기록되고 이진 로그가 중단되거나 ABORT_SERVER를 설정하면 서버가 종료됩니다. (Bug #29111514)
  • Replication: 회원이 과반수 상실 여부를 평가하던 중 STOP GROUP_REPLICATION를 발행하면 서버가 예기치 않게 정지될 수 있습니다. (Bug #29053128)
  • Replication: 이진 로그 파일의 시작 인덱스 번호를 지정하는 데 RESET MASTER TO 문을 사용하면 지정할 수 있는 최대 수가 최대 정수 값에서 2000000000으로 감소했습니다. 최대 정수 값을 지정한 경우 더 이상의 이진 로그 파일을 만들 수 없기 때문에 서버를 시작할 수 없습니다. 서버에서도 이전에 이 상황에서 분할 오류가 발생했습니다. (Bug #28980788, Bug #28995220)
  • Replication: GTID를 사용하고 이진 로깅을 사용하지 않도록 설정한 복제 슬레이브에서 DDL 문이 테이블 필터에 의해 필터링될 때 디버그 모드에서 어설션이 발생했습니다. (Bug #28965972)
  • Replication: 이진 로그에서 문 기반 복제 이벤트의 역직렬화와 관련된 두 가지 문제가 수정되었습니다. (Bug #28889181, Bug #29028491)
  • Replication: 테이블을 여는 동안 어플라이언스 스레드가 중지된 경우 오류가 설정되지 않았으며 빌드 유형에 따라 분할 오류 또는 어설션이 발생할 수 있습니다. 이제 오류 처리가 올바르게 활성화됩니다. (Bug #28864557)
  • Replication: 그룹 복제(group_replication_ip_whitelist)의 IP 주소 화이트리스트에 호스트 이름이 지정되면 다음과 같이 됩니다.IPv4 주소도 사용할 수 있는 경우 이름 확인 및 화이트리스트 비교에 IPv6 주소가 사용되었습니다. 그룹 복제 연결에는 항상 IPv4 주소를 사용해야 합니다. 이제 호스트 이름이 IPv4 주소로 확인되면 IPv6 주소가 화이트리스트와 비교되지 않습니다. (Bug #28841543)
  • Replication: 서버에서 GTID를 사용하는 경우 마스터가 자동 건너뛰기 기능을 사용하여 트랜잭션을 건너뛸 때마다 복제 슬레이브의 마스터 정보 로그가 동기화되었습니다. 프로세스는 슬레이브로 전송되어 로그로 강제 플러시가 발생하며 슬레이브의 쓰기 로드에 큰 누적 영향을 미칠 수 있는 더미 하트비트로 종료됩니다. 동일한 서버에서 시작되어 무시된 이벤트가 포함된 순환 복제 토폴로지에서도 동일한 문제가 발생할 수 있으며, 이러한 이벤트도 슬레이브에 의해 로그에 강제로 플러시됩니다. 이제 슬레이브 처리 코드가 변경되어 하트비트 이벤트와 순환 복제를 통해 수신된 무시된 이벤트에 대한 강제 플러시를 제거함으로써 마스터 정보 로그가 적절한 경우에만 동기화됩니다(예: CHANGE MASTER 문이 실행되거나 이진 로그가 회전되는 경우).(Bug #28815555, Bug #85158)
  • Replication: ALTER TABLE 문을 DEFAULT 절과 함께 사용하여 새 열의 식 기본값을 지정하고 식 기본값은 비결정론적 함수를 참조하는 경우 문 기반 복제에는 안전하지 않습니다. 이전에는 이러한 문장이 GTID 일관성에 영향을 미치지 않기 때문에 GTID 일관성의 관점에서 평가되었습니다. 이제 이러한 문은 이진 로깅에 대해서만 평가되며 사용 중인 이진 로깅 형식에 따라 처리됩니다. binlog_formatSTATEMENT으로 설정하면 문이 기록되지만 오류 로그에 경고 메시지가 기록됩니다. binlog_formatMIXED 또는 ROW로 설정하면 문이 실행되지 않고 오류 메시지가 오류 로그에 기록됩니다. (Bug #28799939)
  • Replication: 단일 기본 모드(group_replication_single_primary_mode=ON)로 구성된 복제 그룹에서 심각한 네트워크 지연이 그룹에 영향을 미칠 경우 기본 및 보조가 트랜잭션에 대해 서로 다른 결정을 내릴 수 있으며, 이로 인해 구성원의 gtid_executed 집합이 분산될 수 있습니다. 이제 문제가 해결되었습니다. (Bug #28768550, Bug #28966455, Bug #92690)
  • Replication: 이전에는 FLUSH RELAY LOGS 문을 사용하여 그룹 복제 group_replication_applier 채널에 대해 릴레이 로그를 수동으로 회전할 수 없었습니다. 이 제한으로 인해 MySQL 8.0.14에서 사용할 수 있는 이진 로그 파일 및 릴레이 로그 파일(binlog_encryption=ON)에 대해 암호화를 사용하도록 설정한 경우 암호화를 다시 사용하지 않도록 설정하면 해당 채널에서 사용 중인 릴레이 로그 파일을 즉시 회전할 수 없습니다. MySQL 8.0.16에서 사용할 수 있는 바이너리 로그 마스터 키 순환에도 이와 유사한 제한이 적용되었습니다. MySQL 8.0.16에서 사용할 수 있는 바이너리 로그 마스터 키 순환에도 이와 유사한 제한이 적용되었습니다. 이제 제한이 제거되었으며 FLUSH RELAY LOGS 문과 해당 내부 요청은 트랜잭션이 적용되는 동안 요청이 수신되면 트랜잭션이 종료된 후에 수행된다는 점을 제외하고 다른 채널과 마찬가지로 group_replication_applier 채널에서 작동합니다. 요청자는 트랜잭션이 완료되고 순환이 수행되는 동안 기다려야 합니다. 이 동작은 트랜잭션이 분할되는 것을 방지하며, 이는 그룹 복제에 허용되지 않습니다. (Bug #28684376)
  • Replication: group_replication_force_members 시스템 변수를 사용하여 그룹에 대한 새 구성을 강제 적용하면 XCOM(그룹 통신 엔진)은 현재 연결할 수 없는 그룹 구성원을 포함하지 않았는지 확인합니다. 있는 경우 재구성이 허용되지 않고 오류가 반환됩니다. (Bug #28678845)
  • Replication: 바이너리 로그에 기록된 GRANT 문이 잘못 기록되는 경우도 있습니다. 이로 인해 마스터에서 성공적으로 실행된 GRANT 문이 복제 슬레이브에서 오류를 일으킬 수 있습니다. (Bug #28643405, Bug #29155451, Bug #93750)
  • Replication: 스토리지 엔진에 STATEMENT 형식이 아닌 STATEMENT 형식으로 기록할 수 있는 기능이 있는 경우 binlog_formatSTATEMENT으로 설정되어 있으면 안전하지 않은 SQL 문이 기록되고 오류 로그에 경고 메시지가 기록되어야 합니다. 그러나 이러한 문장은 대신 실행되지 않았고 오류 로그에 오류 메시지가 기록되었습니다. 이는 binlog_formatMIXED 또는 ROW로 설정된 경우의 올바른 동작입니다. 이제 문제가 해결되어 binlog_formatSTATEMENT으로 설정된 경우 안전하지 않은 문장이 예상대로 경고와 함께 기록됩니다. (Bug #28429993, Bug #73936)
  • Replication: 복제 그룹 멤버가 잠시 오프라인 상태로 전환되었다가 그룹이 오류를 감지하고 해당 멤버를 제거하도록 재구성되기 전에 복제 그룹에 다시 가입하려고 시도할 수 있습니다. 이전에 이 상황에서 다시 가입하는 구성원은 충돌 전에 의도된 메시지를 수신하고 처리할 경우 XCom의 합의 프로토콜에 참여할 수 있었습니다. 다시 가입하는 구성원은 실패 전후에 다른 결정을 내릴 수 있기 때문에 이로 인해 XCom은 동일한 합의 라운드에 대해 서로 다른 값을 전달할 수 있습니다. 이러한 상황을 방지하기 위해, 다시 가입하는 구성원은 충돌 전 메시지를 무시합니다. (Bug #27383487)
  • Replication: 복제 그룹 구성원이 과반수 상실로 인해 그룹에서 제외된 후 로컬 보기를 트리거할 수 있습니다. 이로 인해 회원이 제명 후 정상 영업을 재개했음을 알리는 메시지가 잘못 전달되었습니다. 이제 그룹 복제는 로컬 보기를 전달하기 전에 구성원이 제외되지 않았는지 확인합니다.(Bug #27349236)
  • Replication: group_replication_communication_debug_options 시스템 변수에 잘못된 값이 지정된 경우 그룹 통신 시스템은 해당 내부 변수를 GCS_DEBUG_NONE으로 설정하고 서버는 SHOW VARIABLES 쿼리에 대해 잘못된 값을 반환했습니다. 이제 서버 초기화 중에 시스템 변수 값이 확인되며, 잘못된 값이 지정된 경우 오류 메시지가 기록되고 그룹 복제가 자동으로 시작되지 않습니다. (Bug #26729404)
  • Replication: 과부하된 서버에서 구성원이 그룹에 가입했을 때 해당 지점을 표시하는 VIEW_CHANGE_LOG_EVENT 이벤트가 올바른 위치에 기록되지 않았을 수 있습니다. 이로 인해 새로 가입한 서버로 데이터 전송 및 데이터 분산 오류가 발생할 수 있습니다. 이제 VIEW_CHANGE_LOG_EVENT 이벤트가 이진 로그의 올바른 위치에 기록됩니다. 또한 이벤트 로깅 지연에 대한 경고가 기록됩니다. (Bug #93347, Bug #28971594)
  • Replication: 서버 시작 시 구성원이 그룹에 가입했을 때, 예를 들어 서버가 그룹과 호환되지 않아 가입 프로세스가 실패한 경우 오프라인 구성원이 다른 구성원을 온라인 상태로 볼 수 있습니다. 이러한 상황에서는 performance_schema.replication_group_members 표에 표시된 정보가 OFFLINE일 때 로컬 구성원으로 제한됩니다. (Bug #92110, Bug #28533993)
  • Replication: 복구 채널에 장애가 발생하면 처리되지 않은 릴레이 로그가 지워졌습니다.(Bug #90671, Bug #27940732)
  • macOS: CMake 3.12.4 이상(UseModernBuildSystem = NO 강제 적용)은 이제 Makefiles가 아닌 Xcode로 빌드하는 경우 MacOS에서 필요합니다.(Bug #28893131)
  • Microsoft Windows: named_pipe_full_access_group 시스템 변수에 대한 유효성 테스트에서 NULL 값을 고려하지 않았습니다. (Bug #29256690)
  • Microsoft Windows: mysqld의 여러 인스턴스가 동일한 사용자에 대해 동일한 호스트에서 --no-monitor 옵션으로 시작된 경우 ‘SHUTDOWN’ 명령이 잘못된 서버 프로세스를 종료했습니다. 이 수정은 프로세스의 프로세스 ID를 추가하여 --no-monitor와 함께 사용할 고유한 종료 이벤트 이름을 생성합니다. (Bug #28723675)
  • JSON: 이제 JSON 경로 분석기는 MySQL 서버의 다른 대부분의 구성 요소와 동일한 방식으로 오류를 전파하고 오류 발생 시 true를 반환하고 성공 시 false를 반환합니다. (Bug #28851426)
  • JSON: Json_wrapper::get_datetime()에서 불필요한 유형 조회를 제거했습니다. (Bug #28851324)
  • authentication_ldap_simple 플러그인이 인증을 잘못 적용할 수 있습니다. (Bug #29637712)
  • EL8에서 MariaDB에서 MySQL로 성공적으로 업그레이드할 수 있도록 RPM 패키지 폐기가 업데이트되었습니다. (Bug #29413354)
  • 외부 조인 결과에 NULL 확장 행이 있어야 하는 non-NULL 행이 포함될 수 있습니다. (Bug #29402481)참조 : 이 문제는 Bug #27808758의 회귀입니다.
  • 준비된 문장으로 SET PASSWORD FOR ...를 실행하지 못했습니다. (Bug #29387041, Bug #94416)
  • MySQL Router 라이브러리를 빌드하는 동안 Visual Studio에서 빌드가 실패할 수 있습니다. (Bug #29382197)참조 : 이 문제는 Bug #29361890의 회귀입니다.
  • 가져온 외부 키는 참조된 테이블 앞에 정의된 경우 작동하지 않습니다.(Bug #29379078, Bug #94400)참조 : 이 문제는 Bug #28493257의 회귀입니다.
  • 해결 시 LIKE 식의 ESCAPE 절을 평가하는 동안 오류가 발생하였을 때 오류 상태가 호출자에게 전파되지 않았습니다. (Bug #29368521)
  • MySQL 5.7에서 MySQL 8.0으로 인플레이스 업그레이드한 후 innodb_table_stats_backupinnodb_index_stats_backup 메타데이터 백업 테이블의 테이블 영역 파일이 제거되지 않았습니다. (Bug #29365552)
  • 하위 쿼리를 평탄화하는 동안 항상 false인 술어가 있는 경우 MySQL Optimizer는 어떠한 변환도 수행하지 않아 준비되지 않은 하위 쿼리가 생성되고 나중에 실행될 때 단언되었습니다. 이 문제를 해결하기 위해 하위 쿼리에 이러한 술어가 있는 경우 이제 하위 쿼리의 쿼리 식이 쿼리 블록에서 연결이 해제됩니다.(Bug #29356132)
  • 이벤트, 루틴 또는 트리거가 ALLOW_INVALID_DATES SQL 모드로 정의된 경우 MySQL 8.0.11, 8.0.12 또는 8.0.13에서 MySQL 8.0.14 또는 8.0.15로 업그레이드하지 못했습니다. MySQL 8.0.14에서 데이터 사전의 SQL 모드 식별자가 변경되어 마이그레이션 오류가 발생했습니다. (Bug #29350955)
  • RPM 빌드가 WITH_SSL 구성 설정을 무시했습니다. (Bug #29347534)
  • TO_SECONDS() 함수의 길이 메타데이터가 항상 올바르게 계산되지는 않았습니다. (Bug #29321387)
  • 항상 참 또는 거짓으로 인해 제거된 윈도우 기능을 사용하는 조건이 항상 올바르게 처리되지는 않았습니다. (Bug #29320484)
  • SET ROLE 문장은 메모리가 누출될 수 있습니다.(Bug #29304583)
  • Windows에서 MySQL 5.7에서 MySQL 8.0으로 업그레이드하지 못한 경우 “Error 197 from SE while migrating tablespaces”가 표시됩니다. 이 오류는 테이블 영역 파일을 열려고 할 때 발생한 액세스 공유 위반으로 인해 발생했습니다. (Bug #29292860)참조 : 이 문제는 Bug #28642608의 회귀입니다.
  • RPM 패키지에서는 COMPILATION_COMMENT_SERVER 값이 올바르지 않을 수 있습니다. (Bug #29284651)
  • 새 테이블 정의에 기본 키가 없고 sql_require_primary_key 시스템 변수가 활성화된 경우 테이블이 이미 있더라도 CREATE TABLE IF NOT EXISTS가 실패했습니다. (Bug #29283055, Bug #94134)
  • 모든 파티션이 제거된 분할된 테이블에서 삭제가 항상 올바르게 처리되지는 않았습니다.(Bug #29280186)
  • GNU gold 링커에 대한 CMake 검사는 Clang과 함께 실패할 수 있습니다. (Bug #29278244)
  • MySQL 8.0.16 릴리스에 대해 데이터 사전 버전이 증가되었습니다. (Bug #29278241)
  • ‘DISTINCT’와 함께 사용되는 함수에 잘못된 형식의 인수가 항상 올바르게 처리되지 않았습니다. (Bug #29277571)
  • QUOTE() 함수의 길이 메타데이터가 항상 올바르게 계산되지는 않았습니다. (Bug #29276074)
  • GREATEST() 또는 LEAST() 를 평가할 때 MySQL은 반환 값의 서명 상태를 확인한 후 NULL을 확인합니다. (Bug #29275835)
  • 엄격한 SQL 모드가 적용되지 않은 경우 max_allowed_packet보다 큰 결과를 나타내기 위해 NULL 반환하는 일부 문자열 함수의 값이 일관되지 않게 처리되어 출력이 잘못 정렬되거나 다른 동작이 발생할 수 있습니다. (Bug #29272683)참조 : 참조 항목 : Bug #97301, Bug #29133127.
  • 업그레이드가 지원되지 않는 서버 버전을 확인하기 위해 특정 서버 버전에 대한 업그레이드가 지원되는지 확인하는 논리를 뒤집었습니다. (Bug #29270297)
  • 이벤트 생성 시 잘못된 반복 간격이 저장될 수 있습니다. (Bug #29269819, Bug #94085)
  • 뷰 참조 또는 변환에 의해 생성된 항목이 포함된 WHERE 조건이 항상 올바르게 처리되지는 않았습니다. (Bug #29268867, Bug #29268698, Bug #28723669, Bug #29244238)
  • mysql_ssl_rsa_setup GCC 9를 사용하여 컴파일하지 못했습니다.(Bug #29245251)
  • CMake가 MySQL과 함께 작동하기에 너무 오래된 ‘libtirpc’ 라이브러리를 찾으면 대신 ‘glibc’의 Sun RPC를 사용하려고 합니다. (Bug #29240701)
  • 쿼리 실행 시간을 잘못 계산하여 서버가 느린 쿼리 로그에 느린 쿼리를 쓰지 못할 수 있습니다. (Bug #29232684, Bug #93963)
  • 위치를 사용하는 MySQL 정규 표현식 함수는 코드 포인트 위치가 아닌 16비트 청크를 기반으로 내부 인덱스를 사용했습니다. (Bug #29231490)
  • Windows에서 MySQL MSI 설치 관리자가 Visual Studio 2015 재배포 가능이 설치되었는지 여부를 올바르게 감지하지 못할 수 있습니다. (Bug #29227209)
  • SDI JSON 파일에 Index_impl 개체의 m_hidden 필드가 없습니다. 이로 인해 InnoDB는 숨겨진 인덱스를 다수 추가하므로 SDI JSON을 사용하여 테이블에 대한 CREATE 다시 만드는 데 어려움이 있었습니다. 이제 SDI JSONm_hidden 필드가 포함됩니다. 이렇게 하면 SDI 형식이 변경되므로 SDI 버전 번호가 현재 서버 버전 번호로 증가되었습니다. (Bug #29210646, Bug #93914)
  • 범위 프레임의 마지막 행에 대한 위치 힌트가 프레임의 실제 마지막 행보다 한 행 뒤로 업데이트되었습니다. (Bug #29201831)
  • 열 정의에서 첫 번째 제약 조건이 CHECK 조건인 경우 여러 제약 조건 정의가 받아들여지지 않았습니다. (Bug #29191994)
  • 서버가 업그레이드를 수행하는 경우 시작 중에 버퍼링된 오류 로그 정보가 너무 오래 버퍼링될 수 있습니다. (Bug #29189532)
  • nullable 열의 경우 열이 NULL인 경우를 제외하고 항상 참인 식을 찾으면 식이 *column* IS NOT NULL로 접힙니다. 이러한 식이 중첩되면 NULL 행이 잘못 선택됩니다. 이러한 현상을 방지하기 위해 중첩된 표현식은 이제 `IF(*column* IS NULL, NULL, TRUE)로 접힙니다. (Bug #29179604)
  • Windows 플랫폼에서 PERIOD_ADD()period 인수에 대해 32비트보다 긴 값을 올바르게 처리하지 못했습니다. (Bug #29175262)
  • sql_auto_is_null를 사용하도록 설정하면 WHERE *auto_col* IS NULL 형식의 WHERE 절이 WHERE *auto_col* = LAST_INSERT_ID()로 다시 작성됩니다. 이 변환은 자동 증가 값당 한 번만 수행되었기 때문에 변환이 수행될지 여부를 미리 알 수 없었습니다. 이제 sql_auto_is_null을 사용할 때마다 변환이 무조건 수행됩니다.또한 LAST_INSERT_ID()에서 반환된 값은 이제 부호 없는 값으로 처리되어 서명된 BIGINT 범위를 벗어나는 자동 증분 값과 일치하지 않는 오류를 해결합니다. (Bug #29171668)
  • Debian 및 Ubuntu에서 비인터랙티브 모드의 설치 작업은 root 암호를 무시하므로 기본적으로 auth_socket 플러그인이 설치됩니다. (Bug #29165407)
  • ‘harness_plugin_eventlog’ 선언으로 인해 일부 빌드 환경에서 컴파일 오류가 발생했습니다. (Bug #29160214)
  • 연속 폴딩 중에 소수 상수를 원하는 소수 자릿수로 잘라내거나 확장하는 논리가 부족했습니다. 분수에 후행 0이 추가되면 파벌을 넓히려는 시도가 트리거될 수 있습니다. 왜냐하면 확대 결정은 총 소수 자릿수가 아니라 0이 아닌 소수 자릿수를 기반으로 하므로 내부 함수 widen_fraction()에서 아사트가 발생하게 됩니다. 이 문제는 단순히 초과된 후행 0을 잘라낼 수 있는 위치를 식별하여 해결되었습니다. 이 경우 비교 연산자를 조정할 필요가 없으며 대신 후행 0이 적은 상수로 대체할 수 있습니다. (Bug #29155439)
  • Windows에서 내부 함수 get_mysql_time_from_str_no_warn()이(가) 항상 올바른 오류 검사를 수행하지 않았습니다. (Bug #29155126)참조 : 참조 항목 : Bug #29175262.
  • 특정 상황에서 동일한 테이블의 이름을 여러 번 바꾼 RENAME TABLE 문은 어설션을 발생시키거나 서버를 종료시킬 수 있습니다. (Bug #29140407)
  • 디버그 빌드의 경우 서버를 --event-scheduler=DISABLED로 시작하면 특정 이벤트에 대해 어설션이 발생할 수 있습니다. (Bug #29140298, Bug #93719)
  • 디버그 빌드에서 엄격한 SQL 모드가 적용되지 않을 때 CONCAT()CONCAT_WS() 함수는 결과가 max_allowed_packet보다 길면 어설션을 발생시킵니다. (Bug #29133127)
  • 범위를 벗어난 부분 부품은 SET SESSION timestamp 문에 잘못된 타임스탬프를 생성할 수 있습니다. (Bug #29120569, Bug #93600)
  • mysql_service_component_sys_variable 서비스는 구성 요소 시스템 변수에 액세스할 수 있지만 서버 또는 플러그인 시스템 변수는 액세스할 수 없습니다. (Bug #29113463)
  • ALTER TABLE ... CONVERT TO CHARACTER SET 에서 메모리 액세스 오류가 발생할 수 있습니다. (Bug #29058369, Bug #93603)
  • mysql.tablespaces.name 열 제한은 259바이트로, 허용된 식별자 길이보다 작습니다. 열 제한이 268바이트로 증가했습니다. (Bug #29053560, Bug #93587)
  • 디버그 빌드의 경우, 어설션을 발생시킨 공간 계산의 경우 파티션 처리 코드가 오류를 무시하여 서버가 종료되었습니다. (Bug #29047811)
  • 외부에 저장된 길이 0의 LOB로 인해 어설션 오류가 발생했습니다. (Bug #29047795)
  • 교차 컴파일 오류를 방지하기 위해 COMFILE_DEFINITIONSCOMFILE_FLAGS CMake 옵션 처리가 조정되었습니다. (Bug #29041100)
  • 서버는 max_error_count 시스템 변수가 0으로 설정된 경우에도 첫 번째 진단 영역 메시지를 읽으려고 시도하여 메모리 액세스 오류가 발생할 수 있습니다. (Bug #29031684)
  • DATE 값을 상수 문자열과 비교할 때 MySQL은 먼저 문자열을 DATE로 변환한 다음 비교를 수행합니다. 변환이 실패하면 MySQL에서 DATE를 문자열로 간주하여 비교를 실행했으며, 이로 인해 예기치 않은 동작이 발생할 수 있습니다. 이러한 경우 문자열을 DATE로 변환하지 못하면 ER_WRONG_VALUE와의 비교가 실패합니다. (Bug #29025656)참조 : 참조 항목 : Bug #95466, Bug #29812087.
  • --users 옵션을 사용하여 mysqlpump가 출력에 ‘CREATE USER’ 및 ‘GRANT’ 문을 썼지만 덤프가 생성한 다른 개체에 적용하기에는 너무 늦었습니다. 따라서 덤프 파일을 복원하면 사용자 계정이 너무 늦게 생성되어 파일에 의해 생성된 다른 개체에 적용할 수 없습니다. mysqlpump는 이제 다른 개체보다 먼저 덤프 파일에 사용자 계정을 씁니다. (Bug #29023216)
  • WITH 키워드 위치에 구문 오류가 있는 경우 파서 오류 메시지가 잘못된 위치에서 문제를 식별했습니다. (Bug #29022263)
  • MySQL 빌드에서는 최근 버전의 ICU(International Components for Unicode)를 사용하여 잘못된 형식의 정규식에 대한 일반 오류 ER_REGEXP_ERROR 대신 ER_REGEXP_ILLEGAL_ARGUMENT를 반환합니다. (Bug #29016798)
  • Windows에서 파일 시스템에서 대소문자를 구분하는 경우 LDAP 라이브러리를 찾을 수 없습니다. (Bug #29016220)
  • INFORMATION_SCHEMA.TABLES 테이블의 TABLE_COMMENT 열에서 선택한 값이 잘릴 수 있습니다. (Bug #29014272, Bug #93451)
  • ASAN 및 Valgrind 빌드에서는 미자유 스키마와 관련된 데이터 계층 메모리 누수가 발견되었습니다. (Bug #29008688)
  • 식을 포함하는 ORDER BY 절과 함께 사용할 경우 ROLLUP이 포함된 GROUP BY 쿼리가 ER_WRONG_FIELD_WITH_GROUP를 잘못 올렸습니다.같은 문제로 인해 함수에 대한 주문 시 ROLLUP을 사용하여 ‘GROUP BY’ 쿼리의 결과 순서가 잘못 지정되었습니다.(Bug #29006668, Bug #29054096)
  • 파서가 생성된 열 정의에서 여러 COLLATE 절을 수락했습니다. 이제 단일 COLLATE 조항을 받아들입니다. (Bug #28997518)
  • INSERT ... ON DUPLICATE KEY UPDATE 가 잘못된 업데이트를 수행할 수 있습니다. (Bug #28995498, Bug #93410)참조 : 이 문제는 Bug #26188578의 회귀 입니다.
  • ‘mysql.user’ 테이블이 손상되면 서버가 종료될 수 있습니다. (Bug #28986737)
  • 성능 스키마 data_locks 또는 data_lock_waits 테이블에서 행을 읽으면 검색 중에 무제한의 행 수가 반환되어 메모리 할당이 과다하여 서버가 종료될 수 있습니다. 이 경우 오류가 발생합니다. (Bug #28977428, Bug #87748)
  • 빈 테이블 위의 LATERAL 결합에 대한 실현 비용을 계산하면 주장이 나왔습니다. 이제 이러한 경우 쿼리 비용은 0으로 보고됩니다. (Bug #28976533)
  • 디버그 빌드의 경우 CREATE 또는 ALTER DDL 문의 열 형식에 대한 주석 문자열에 잘못된 utf8 어설션을 발생시켰습니다. (Bug #28972424, Bug #93321)
  • CMake에서 tirpc 헤더를 검사하면 이제 더 많은 Linux 플랫폼에서 헤더를 찾을 수 있도록 pkgconfig를 사용하게 됩니다. 이렇게 하려면 pkgconfig를 설치해야 합니다. (Bug #28970313, Bug #93341, Bug #28997093)
  • mysqld 하위 쿼리의 WHERE 절에 있는 구성 요소가 결정적이지 않은 경우, 특히 이 경우에는 동일한 문에 설정된 사용자 변수를 참조하기 때문에 예기치 않은 종료가 발생할 수 있습니다. 이 문제는 결정론적 구성 요소가 아닌 술어를 무시하여 해결되었습니다.또한 일반적으로 비결정론적 하위 질의를 외부 행별로 평가해야 하므로 구체화 전략의 대상이 되어서는 안 됩니다. 이것은 비결정론적 술어를 장식하지 않음으로써 방지됩니다. 가능한 경우, 비반조인 및 비결정론적 하위 쿼리에 대해서도 동일한 전략 선택이 시행됩니다. (Bug #28970261)
  • 이전에 사용자 수준 잠금 및 명시적인 테이블 잠금을 획득한 경우 테이블 스토리지 엔진을 변경하기 위한 ALTER TABLE 문이 중단될 수 있습니다. (Bug #28966941)
  • `LIMIT ... OFFSET가 있는 COUNT()가 이 절과 함께 사용된 다른 집계 함수를 사용하여 얻은 것과 다른 결과를 반환했습니다. (Bug #28961843)
  • MYSQL_HOME 환경 변수 값을 추출하면 환경에서 MYSQL_HOME 다음에 저장된 변수의 값이 변경될 수 있습니다. (Bug #28960613)
  • ‘Item_subselect::walk_body()’는 이제 ‘FROM’ 절을 걷습니다. (Bug #28955358)
  • 다음 두 개의 IN 하위 쿼리가 있는 쿼리에 대한 쿼리 계획에서 문제가 발견되었습니다.
    • 최상위 쿼리에 대한 외부 참조를 포함하는 파생 테이블이 있는 하위 쿼리입니다.
    • 외부 상관 관계가 없는 파생 테이블이 있는 하위 쿼리는 반조직을 사용했고 측면도 아니었습니다.
    두 번째 하위 쿼리의 경우, 관련 없는 가로 테이블을 제외하기 위해 무시된 종속성 맵의 계산과 첫 번째 하위 쿼리에 파생된 테이블의 종속성이 잘못 포함되었습니다. (Bug #28954838)
  • 특정 GROUP BY 쿼리에서 상수 식을 평가하는 동안 발생한 오류가 적시에 확인되지 않았습니다. (Bug #28949452)
  • DATE 또는 DATETIME 값을 문자열과 비교할 때 MySQL은 먼저 문자열을 동일한 유형(DATE 또는 DATETIME)으로 변환한 다음 두 값을 해당 유형의 값으로 비교합니다. 변환이 실패하면 MySQL은 잘못된 날짜 값 경고를 발생시킨 다음 값을 문자열로 비교합니다. 이는 예상된 동작입니다. 경우에 따라 변환된 문자열이 유효한 DATE 또는 DATETIME 값을 반영하지 않았더라도 경고가 발생하지 않았으며 이 값을 해당 유형의 값으로 DATE 또는 DATETIME 값과 비교했습니다. 이러한 경우 변환된 문자열은 ALLOW_INVALID_DATES 서버 SQL 모드가 명시적으로 설정되어 있지 않은 한 비교하기 전에 항상 DATE 또는 DATETIME 유효성을 검사합니다.(Bug #28940878)
  • 클라이언트 호스트 이름이 길면 예기치 않은 서버 동작이 발생할 수 있습니다. (Bug #28936359)
  • 준비된 단일 문에서 많은 수의 매개 변수를 대체하면 메모리가 과도하게 불필요하게 재할당할 수 있습니다. 이 문제는 String::replace()String::append()와 같이 지수 버퍼 증가를 사용하도록 함으로써 해결됩니다. (Bug #28929977)
  • 트랜잭션 관련 작업의 결과를 확인하지 못해 데이터 사전 캐시가 데이터 사전 내용과 동기화되지 않을 수 있습니다. (Bug #28923782, Bug #93196)
  • 이제 mysqld 프로세스에서 사용할 수 있는 온라인 CPU 수를 더 정확하게 확인할 수 있습니다. 대니얼 블랙의 기부에 감사드립니다. (Bug #28907677, Bug #93144)
  • INFORMATION_SCHEMA.TABLES TABLE_COMMENT 열이 잘못된 보기로 인해 잘못된 오류 메시지를 보고했습니다. (Bug #28901919)
  • 업그레이드 후 INFORMATION_SCHEMA.TABLES 보기에서 여러 sys 스키마 보기에 대해 “View ‘view_name‘ 참조가 잘못된 테이블이나 열, 함수 또는 뷰의 정의자/호출자” 참조를 사용할 권한이 없음을 보고했습니다. 업그레이드 프로세스에서 참조 보기 상태가 업데이트되지 않았습니다. (Bug #28901821)
  • 여러 개의 개별 열 값이 있는 큰 테이블(수백만 개의 행)에 대한 히스토그램을 만드는 데 시간이 너무 많이 걸렸습니다.이 수정으로 인해 고유한 값이 거의 없는 데이터 세트의 경우 이 프로세스가 약간 느려지고 이전보다 약간 더 많은 메모리를 소비하지만, 고유한 값이 많은 대규모 데이터 세트의 경우 훨씬 더 빠릅니다. (Bug #28888936)
  • 업그레이드하는 동안 억제해야 하는 키 길이 오류로 인해 페이지 크기가 InnoDB인 인스턴스에서 MySQL 5.7에서 MySQL 8.0으로 업그레이드하지 못했습니다. (Bug #28884503)
  • 키링 플러그인이 잘못 구성되면 서버가 종료될 수 있습니다. (Bug #28876033)
  • COUNT()기능을 사용하는 경우에서 두 가지 문제가 발견되었습니다.
    • COUNT()에 전달된 인수가 null인 경우 함수가 잘못된 결과를 반환할 수 있습니다.
    • COUNT()EXISTS 하위 쿼리와 함께 사용하는 쿼리가 잘못된 결과를 반환했습니다.
    (Bug #28857990, Bug #29240516)
  • MySQL 빌드 중에 ccache를 호출하는 명령이 잘못 생성되었습니다. (Bug #28841612, Bug #92927)
  • 이전에는 삽입 열 이름을 여러 번 나열한 INSERT 문장의 경우 첫 번째 중복 이름만 보고되었습니다. 이제 모든 중복된 이름이 보고됩니다. (Bug #28836669)
  • ROLLUP을 사용할 때 GROUP BY가 일부 행에서 NULL을 생성할 수 있습니다. 이러한 행 중 하나를 참조하는 식은 NULL을 손실하여 잘못된 결과를 생성할 수 있습니다. (Bug #28836345)
  • 테이블을 열지 못한 후 스토리지 엔진에서 테이블을 검색하려고 해도 오류가 반환되지 않아 오류가 발생할 경우 서버가 중단될 수 있습니다. (Bug #28828450)
  • 특정 역할이 부여된 사용자를 삭제하려고 할 때 서버가 종료될 수 있습니다. (Bug #28817441)
  • MySQL이 -DWITH_MYSQLX=0로 구성된 경우 MySQL Router 컴파일에 실패했습니다. (Bug #28811356)
  • 데이터 사전 업그레이드 중에 호출된 함수가 이전 시간 유형을 항상 확인하도록 avoid_temporal_upgrade 매개 변수를 임시로 수정했습니다. 여러 스레드가 함수를 동시에 호출할 수 있으므로 데이터 사전 업그레이드 중에 매개 변수 값을 안전하게 수정할 수 있도록 검사가 추가되었습니다. (Bug #28805429)
  • EXIST 하위 쿼리는 세미조인 연산으로 변환됩니다. 옵티마이저는 이 세미조인에 대해 구체화 조회 전략을 선택하지만 하위 쿼리가 외부 쿼리 블록과 관련이 없기 때문에 검색에 사용할 키가 없어서 상위 쿼리가 실패합니다. 이 문제를 해결하기 위해 두 개의 동일한 상수 항목을 키로 사용하여 구체화된 쿼리가 상수를 키로 얻을 수 있도록(및 구체화된 테이블이 최대 하나의 행으로 구성되도록) 합니다. (Bug #28805105)
  • 이제 Last_query_cost상태 변수는 하위 쿼리 또는 결합과 같은 여러 블록을 포함하는 쿼리의 비용을 표시합니다. 이전에는 이 변수는 단일 쿼리 블록으로 구성된 단순 쿼리에 대해서만 설정되었습니다.(Bug #28786951)
  • 치명적인 신호가 발생했을 때 mysqld에 의해 표시되는 메시지가 간소화되어 더욱 많은 정보를 제공합니다. 또한 최신이 아닌 부정확한 메모리 사용량의 계산도 표시되지 않습니다. (Bug #28773322, Bug #92731)
  • skip_name_resolve 시스템 변수는 SET PERSIST_ONLY를 사용하여 계속 사용할 수 있지만 사용하지 않도록 설정할 수는 없습니다. (Bug #28749668)
  • 단일 테이블 업데이트 및 삭제 쿼리에 필요한 경우를 제외하고 반복기에서 더 이상 사용되지 않고 불필요한 조건 푸시다운 처리를 제거했습니다. (Bug #28745859)
  • IS NOT NULL 술어는 Optimizer에서 수행하는 ref 액세스를 위해 NULL의 초기 필터링의 일부로 추가됩니다. 스타 조인 토폴로지가 있는 쿼리의 경우 이러한 술어의 중복 복제가 추가되어 영향을 받는 WHERE 조건의 평가 효율성이 떨어졌습니다. (Bug #28727717)
  • CMake에서 MySQL이 번들 버전의 시스템 라이브러리를 사용하도록 구성된 시기를 포함하여 잘못된 시스템 순서를 생성할 수 있습니다. (Bug #28727631, Bug #92615)
  • 이중에서 긴 변환과 관련된 일부 숫자 작업은 Windows 및 Linux에서 다른 결과를 반환할 수 있습니다. (Bug #28706832)
  • 준비된 문을 실행하는 동안 null 포인터에 액세스하려는 시도가 발생할 수 있습니다. (Bug #28692136)
  • FROM_UNIXTIME() 는 반올림 시 에폭 값을 초과하는 인수를 통과하면 범위를 벗어난 값을 반환했습니다. 이제 범위를 벗어난 다른 값에 대해 NULL을 반환합니다. (Bug #28671811, Bug #92501)
  • 복제된 DDL 작업으로 인해 slave_parallel_workers 시스템 변수로 시작된 서버에서 복구 중에 ‘주 키에 대한 중복 항목(duplicate entry on primary key)’ 오류가 발생할 수 있습니다. (Bug #28670843)
  • 계정의 호스트 이름이 비어 있으면 서버가 잘못 작동할 수 있습니다. (Bug #28653104)
  • MySQL 5.7에서 MySQL 8.0으로 업그레이드 프로세스에서 테이블 영역 파일의 존재를 확인하지 않아 데이터 사전이 일관되지 않을 수 있습니다. (Bug #28642608)
  • ENUM의 유형 캐스팅은 하위 쿼리에서와 하위 쿼리에서 다르게 동작했습니다. (Bug #28547906, Bug #92173)
  • 부동소수점 값 절단을 일으킨 문은 서버 SQL 모드에 STRICT_TRANS_TABLES가 포함된 경우에도 준비된 문으로 실행될 수 있습니다. 또한 이진 로깅 모드가 MIXED인 경우 이러한 문장이 슬레이브로 전파되어 오류가 발생했습니다. (Bug #28546855)
  • 런타임에 thread_cache_size 값을 줄여도 스레드 캐시 크기는 줄어들지 않았습니다. (Bug #28508923, Bug #92024)
  • 일부 오류 메시지는 제거된 PASSWORD() 함수를 여전히 참조합니다. (Bug #28498714)
  • 연결이 thread_pool 플러그인으로 관리되는 경우 실패한 연결 시도에서 Aborted_connects 상태 변수가 증가하지 않았습니다. (Bug #28490126)
  • mysqladmin shutdownmysqld 종료될 때까지 기다리지 않았습니다. (Bug #28466137, Bug #91803)참조 : 이 문제는 Bug #25364806의 회귀입니다.
  • GRANT 문에서 CURRENT_USER를 사용자로 지정하면 실패할 수 있습니다. (Bug #28454014)
  • 단락 평가 중인 쿼리를 실행하는 저장 프로시저의 반복 호출이 항상 올바르게 처리되지는 않았습니다. (Bug #28379655)
  • 키링을 마이그레이션하려면 소스 키링에 대한 읽기 액세스만 있어야 하지만 사용자에게 쓰기 액세스 권한이 없는 한 실패했습니다. (Bug #28339014)
  • 키링 마이그레이션을 수행하는 사용자에게 키링 파일에 대한 쓰기 액세스 권한이 없는 경우 마이그레이션은 실패했지만 최종 오류 로그 메시지에 성공이 보고되었습니다. (Bug #28330922)
  • FLUSH STATUS 실행 중 성능 스키마가 세션 상태를 불필요하게 전역 상태로 집계하여 일부 상태 변수에 대해 이중 카운트가 발생합니다. (Bug #28291258, Bug #91541)
  • mysql_secure_installation는 더 이상 .mysql_secret 파일에서 암호를 읽지 않습니다. 이 파일은 제거된 프로그램인 mysql_install_db에 의해 생성되었습니다. (Bug #28235716, Bug #91270)
  • 일부 상태 변수 값은 원래 값으로 돌아가기 전에 일시적으로 증가할 수 있습니다. (Bug #27839644, Bug #90351)
  • --ssl-fips-mode를 지정했지만 FIPS 모드를 지정된 옵션 값으로 설정할 수 없는 경우 클라이언트 프로그램이 종료되지 않았습니다. (Bug #27809371)
  • ALTER INSTANCE ROTATE INNODB MASTER KEY를 실행하고 keyring_file 플러그인에서 keyring_encrypted_file 플러그인으로 키를 마이그레이션하면 암호화된 테이블을 사용할 수 없게 될 수 있습니다. (Bug #27760952)
  • MySQL Community에서 Commercial로 업그레이드할 때 데이터 디렉토리가 존재하는 경우에도 root 암호 프롬프트가 표시되었습니다. (Bug #27741998)
  • 클라이언트/서버 프로토콜에서 준비된 문에 대한 잘못된 형식의 패킷이 탐지되지 않고 어설션이 발생할 수 있습니다. (Bug #27627731)
  • X 플러그인을 사용할 때 쿼리 처리 속도를 높이기 위해 스레드에 대한 세션 연결 및 연결 끊기 처리가 변경되었습니다. 이전에는 모든 명령을 사용하여 현재 스레드에 세션(‘Srv_session’)을 연결하거나 현재 세션의 연결을 끊거나 현재 스레드와 연결된 스레드가 서로 다른 플러그인에 속할 때만 이 스레드 전환이 수행됩니다. (Bug #27463277)
  • PERSISTPERSIST_ONLY 키워드가 실수로 예약되었습니다. 이제 예약되지 않은 키워드입니다. (Bug #25220656)
  • 클라이언트 연결 작업과 동시에 플러그인을 설치 및 제거하면 서버가 종료될 수 있습니다. (Bug #22980441)
  • /proc 아래의 파일과 같이 stat()이(가) 권고 사항으로만 간주되어야 하는 파일의 경우 LOAD_FILE() 함수가 실패할 수 있습니다. (Bug #18394503, Bug #72027)
  • 쿼리 중인 테이블에 암묵적인 전체 텍스트 인덱스가 있고 정렬 버퍼 크기가 정렬된 키를 포함할 수 없을 때 ORDER BY 절을 사용한 쿼리가 자동으로 실패했습니다. (Bug #93241, Bug #28940361)
  • 이제 문자열 값을 반환하는 로드 가능한 함수가 명시적 반환 유형을 설정합니다. 함수에 전달된 인수에 따라VARCHAR, MEDIUMBLOB또는 LONGBLOB 중 하나입니다. (Bug #92890, Bug #28828169)
  • 내부 메서드 Item_result::item_cmp_type()에서 보다 효율적으로 비교했습니다. Daniel Black 님에게 감사드립니다. (Bug #92784, Bug #28796107)
  • 산술식에 사용된 창 함수에서 해당 함수를 포함하는 쿼리가 DISTINCT를 사용했을 때 잘못된 결과를 생성되었습니다. (Bug #92503, Bug #28672483)
  • 일부 쿼리는 유출된 파일 핸들에 복잡한 결합을 포함합니다. (Bug #90902, Bug #28039829)
  • Fedora 패키징은 이제 Fedora 30을 지원합니다.
  • Ubuntu 14.04 및 SLES 11은 EOL이며 더 이상 지원되지 않습니다.