
MySQL 5.7.31 릴리즈 노트 입니다.
환경 설정 노트 (Configuration Notes)
tcmalloc
은(는) 더 이상 mysqld_safe--malloc-lib
옵션에 허용되는 값이 아닙니다. (Bug #31372027)
패키지 노트 (Packaging Notes)
- MySQL에 번들로 제공된
libevent
라이브러리가 버전 2.1.11로 업그레이드되었습니다. 또한WITH_LIBEVENT
CMake 옵션의 경우 다음과 같은 두 가지 사항이 변경되었습니다.yes
는 더 이상system
의 동의어로 허용되지 않습니다. 대신system
을 사용합니다.system
은(는) 지정되었지만 시스템libevent
를 찾을 수 없는 경우 번들 버전이 누락된 시스템 라이브러리 대신 더 이상 사용되지 않으며 대신 오류가 발생합니다.
보안 노트 (Security Notes)
- Incompatible Change: 이제
INFORMATION_SCHEMA.FILES
테이블에 액세스하려면PROCESS
권한이 필요합니다.이 변경 사항은FILES
테이블의 테이블스페이스 정보에 액세스하는 mysqldump 명령 사용자에게 영향을 미치므로 이제PROCESS
권한도 필요합니다. 테이블스페이스 정보를 덤프할 필요가 없는 사용자는 mysqldump를--no-tablespaces
옵션으로 호출하여 이 요구 사항을 해결할 수 있습니다. (Bug #30350829) - MySQL Server의 연결된 OpenSSL 라이브러리가 버전 1.1.1g로 업데이트되었습니다. 새 OpenSSL 버전에서 해결된 문제는 https://www.openssl.org/news/cl111.txt 및 https://www.openssl.org/news/vulnerabilities.html에서 설명합니다. (Bug #31296697)
버그 수정 (Bugs Fixed)
- InnoDB: 모듈 소유자로 정의된 카운터의
INNODB_METRICS
테이블AVG_COUNT_RESET
값이 NULL을 보고했습니다.METRIC_AVG_VALUE_RESET
필드가 NULL로 잘못 표시되었습니다.Fungo Wang님이 많은 기여를 해주셔서 감사합니다. (Bug #31084706, Bug #98990) - InnoDB: 기록 목록 길이가 0에 가까울 때 삭제 스레드 작업이 과도하여 CPU 리소스가 낭비되고 뮤텍스 경합이 발생했습니다. (Bug #30875956)
- InnoDB: “ibuf cursor restoration fails” 오류로 인해 서버에 간헐적으로 장애가 발생했습니다. (Bug #30770380, Bug #91033)
- InnoDB: 종료하는 동안 치명적인 “page still fixed or dirty” 오류가 발생했습니다. (Bug #29759555, Bug #95285)참조: 이 문제는 Bug #29207450의 회귀입니다.
- Partitioning:
ORDER BY
를 사용한 분할된 테이블에 대한 쿼리가 다음 조건에서 정렬되지 않은 결과를 반환했습니다.:- 테이블에는 열 중 하나에 접두사가 있는 복합 인덱스가 있습니다.
- 쿼리의
WHERE
절에 접두사 열에 동등 조건이 포함되어 있습니다. - 접두사가 있는 열은 인덱스에서 맨 왼쪽에 있는 열입니다.
ORDER BY
에 사용된 열은 인덱스의 맨 오른쪽 열입니다.- 이 지수는
ORDER BY
를 처리하는 데 사용되었습니다.
- Replication: 복제 원본 서버가 종료된 후 재시작되면,
MEMORY
표는 비어 있게 됩니다. 이 효과를 복제본에 복제하기 위해, 시작 후 원본이 지정된MEMORY
테이블을 처음 사용할 때, 해당 테이블에 대한DELETE
문을 이진 로그에 기록하여 테이블을 비워야 함을 복제본에게 알립니다. 이전에 생성된DELETE
문은 현재 세션의 이진 로그 문 캐시에 기록되었으며, 이로 인해 동일한 GTID로 다른 문과 함께 기록되거나BEGIN
및COMMIT
문 없이 기록될 수 있습니다. 또한 경우에 따라 생성된DELETE
문이 GTID를 트리거한 트랜잭션에 사용할 수 있습니다. 생성된DELETE
문은 이제BEGIN
및COMMIT
문과 함께 기록되며 결과 트랜잭션은 문 캐시에 기록되는 즉시 이진 로그에 플러시되므로 항상 자체 GTID를 수신하고 다른 트랜잭션과 별도로 유지됩니다. (Bug #30527929, Bug #25681518, Bug #77729) - Replication: 그룹 구성원 자격 변경과 동시에 발생한 경우 로컬 그룹 구성원에 대한 통계에 대한 그룹 복제에서 성능 스키마로의 내부 쿼리가 실패했습니다. 이 문제를 해결하기 위해 내부 쿼리에 대한 잠금이 개선되었습니다.(Bug #30049349, Bug #30791583, Bug #30963553)
- Replication: 시스템 변수
binlog_transaction_dependency_tracking
및binlog_transaction_dependency_history_size
와 관련된 교착 시나리오에 대해 MySQL 8.0.14 및 MySQL 5.7.25에서 수정한 경우 트랜잭션 종속성 추적에 사용되는 쓰기 세트 기록이 동시 업데이트에서 보호되지 않는 부작용이 있었습니다. 이제 쓰기 세트 기록과 추적 모드는 액세스할 때마다 올바르게 잠깁니다. (Bug #29719364, Bug #95181)참조: 참고 항목: Bug #28511326, Bug #91941. -DWITH_EDITLINE=system
로 구성하면 이전 라이브러리 버전에 대해 컴파일 실패가 발생했습니다. (Bug #31366715)- 이전 MySQL 배포에서 번들
libedit
라이브러리를 업그레이드하면 해당 라이브러리를 사용하는 빌드에 문제가 발생하여 mysql 클라이언트의 CTRL+C(SIGINT)를 적용하려면 다음과 같은 Enter가 필요합니다. (Bug #31360025) - 변수에
CONCAT('')
또는CONCAT_WS('')
를 할당하면 변수가 빈 문자열이 아닌NULL
로 설정됩니다. (Bug #31320716, Bug #99485, Bug #31413167, Bug #99722) gen_range()
사용자 정의 함수는 인수를 잘못 처리하여 서버를 종료할 수 있습니다. (Bug #30763294)UPDATE
처리 중에 내부 메모리 테이블을 “InnoDB”로 변환하면 키 길이 오류가 발생할 수 있습니다. (Bug #30674616)- ‘*'(단일 별표 문자) 열을 정의할 수 있지만
SELECT '*'
는SELECT *
와 동일하게 처리되어 쿼리에서 이 열만 선택할 수 없습니다. 즉, 별표 문자가 백틱으로 둘러싸인 경우에도 모든 테이블 열 목록으로 확장되었습니다. (Bug #30528450) - 내부 packet-length 함수가 잘못된 정수 형식의 값을 반환했습니다. (Bug #30139031)
- mysqldump의
INSERT
문 길이 계산에는VARBINARY
문자열에 사용되는 ‘_binary’ 문자 집합 도입기가 고려되지 않았습니다. (Bug #29998457, Bug #96053) - 내부 메서드 ‘Field_tiny::pack()’이(가) 항상 예상대로 경계 검사를 수행하지 않았습니다.(Bug #29948029)참조: 참고 항목: Bug #31591391.
mysql_store_result()
에서 잘못된 데이터 패킷을 감지하지 못할 수 있습니다.(Bug #29921423)- 첫 번째 테이블의 키를 업데이트한 다중 테이블
UPDATE
에서 임시 테이블 전략을 사용할 경우 임시 테이블에 중복 항목을 쓴 후 ‘레코드를 찾을 수 없습니다’ 오류가 발생할 수 있습니다. (Bug #28716103) - 최적화 프로그램에서 유사 테이블에 테이블로 액세스하려고 하면 예기치 않은 서버 동작이 발생할 수 있습니다. (Bug #28651673)
- 서버가 쿼리를 최적화할 때
GROUP BY
가 있는 하위 쿼리를 실수로 제거하기도 했는데, 이는 외부 선택에서 이 하위 쿼리를 사용한 경우에도 마찬가지입니다. 이 문제는 하위 쿼리가 집계 함수를 사용한 경우에도 발생할 수 있습니다. (Bug #28240054) NAME_CONST()
함수의 강압성이 잘못 평가되었습니다.(Bug #26319675)- Optimizer가 값을 가져오기 위해 생성된 열의 인덱스를 선택할 때 잘못된 결과가 발생할 수 있습니다. (Bug #24345509, Bug #29451999)