
MySQL 5.7.30 릴리즈 노트 내역입니다.
JSON 노트 (JSON Notes)
- MySQL에 포함된
rapidjson
라이브러리는 2020년 1월 16일 GitHub 스냅샷으로 업그레이드되었습니다. Mac OS X에서 스냅샷을 빌드할 때 발생한 컴파일러 오류에 대한 수정 사항이 추가되었습니다.(Bug #30898701)
패키징 노트 (Packaging Notes)
- 시스템 ‘curl’ 라이브러리에 연결하는 대신 ‘curl’이 포함된 이진 패키지는 ‘curl’ 7.69.0을 사용하도록 업그레이드되었습니다. (Bug #30866333)
- 번들 ‘libedit’ 라이브러리가 버전 3.1로 업그레이드되었습니다. (Bug #28939380, Bug #20770875, Bug #22930525, Bug #22332089, Bug #27433491, Bug #27285445)
버그 수정 (Bugs Fixed)
- InnoDB: 클러스터된 인덱스 레코드를 삭제된 것으로 표시하고 업데이트된 버전의 레코드를 클러스터된 인덱스에 삽입하는
row_upd_clust_rec_by_insert
함수가 하위 수준 함수에 잘못된n_ext
값(총 외부 필드 수)을 전달하여 어설션 오류가 발생했습니다. (Bug #30437378) - InnoDB:
innodb_buffer_pool_evict
디버그 변수가uncompressed
으로 설정된 상태에서 수행된 작업으로 인해 어설션 오류가 발생했습니다. (Bug #30405531) - InnoDB: 열 추가 작업으로 인해 어설션 오류가 발생했습니다. 그 실패는 매달린 포인터 때문이었습니다.(Bug #29866408)참조: 이 문제는 Bug #28491099 의 회귀입니다.
- InnoDB: 문자열 값을 사용하는 특정
InnoDB
시스템 변수를 업데이트하면 Valgrind 테스트 중에 잘못된 읽기 오류가 발생했습니다. (Bug #29717909, Bug #95215) - InnoDB: 공간 인덱스가 있는 테이블에 삽입 문이 튜플 손상으로 인해 레코드 형식 불일치 어설션이 발생했습니다. (Bug #29465567)
- InnoDB: 실행 취소 로그 레코드 크기를 계산하는 함수는 실행 취소 로그 레코드가 손상된 경우 잘못된 길이 값을 계산하여 몰록 오류를 발생시킬 수 있습니다. 잘못된 계산을 탐지하기 위해 어설션 코드가 추가되었습니다.(Bug #29448406, Bug #82734)
- Replication: 중요한 정보가 일반 텍스트로 표시되지 않도록 이진 로그에 대해 SQL 문을 다시 작성하는 과정에서 쿼리를 검사하는 데
SHOW PROCESSLIST
문이 사용되면 이진 로그에 기록되었을 때 쿼리가 손상되어 복제가 중지될 수 있습니다. 질의 재작성 프로세스는 이제 비공개로 유지되며, 재작성이 완료될 때만 질의 스레드가 업데이트됩니다. (Bug #30569003, Bug #97531, Bug #30654405) - Replication:
GRANT
또는REVOKE
문이 부분적으로만 실행되면 문제 이벤트가 이진 로그에 기록되므로 슬레이브를 마스터와 수동으로 조정할 수 있도록 복제 슬레이브의 어플라이언스 스레드가 중지됩니다. 이전에는 실패한GRANT
또는REVOKE
문이 세션에서 처음 실행된 문인 경우 해당 세션에 대한 캐시 관리자가 아직 존재하지 않기 때문에 GTID가 인시던트 이벤트에 적용되지 않아 복제 슬레이브에 오류가 발생했습니다. 또한GRANT
문이 사용자를 생성했지만 권한이 잘못 지정되어 복제 슬레이브에 다시 오류가 발생한 경우 문제 이벤트가 기록되지 않았습니다. 이 두 가지 문제는 모두 해결되었습니다. (Bug #30566518, Bug #30324661) - Replication: 복제 슬레이브에 마스터가 해당 테이블에 없는 생성된 열이 있는 경우 생성된 열에 보조 인덱스가 있는 경우 생성된 식을 평가하고 보조 인덱스의 저장소 엔진에서 저장한 값을 계산해야 합니다. 행 기반 이진 로깅이 사용 중인 경우 복제 슬레이브는 테이블의 마스터 정의에 없는 필드에 기본값을 할당합니다. 기본값이 없는 생성된 열의 경우 슬레이브가 이전에 null 또는 0 값을 열에 할당했습니다. 그런 다음 이 값이 스토리지 엔진에 의해 보조 인덱스에 저장되어 테이블과 인덱스가 모두 손상되었습니다. 이 문제를 해결하기 위해 복제 슬레이브에 있는 테이블의 생성된 열이 값이 스토리지 엔진으로 전송되기 전에 다시 평가됩니다. (Bug #30034874)
- Replication: 마스터에서 복제 슬레이브의 연결이 계획되지 않은 경우 마스터의 덤프 스레드에 대한 참조가 등록된 슬레이브 목록에서 제거되지 않을 수 있으며, 이 경우 슬레이브 목록에 액세스한 문이 실패합니다. 이제 문제가 해결되었습니다. (Bug #29915479)
- Replication:
binlog_format=MIXED
,tx_isolation=READ-COMMITTED
및binlog_row_image=FULL
설정에서 트랜잭션 스토리지 엔진과 관련된INSERT ... SELECT
쿼리는 이진 로그에 기록된 행 이미지에서 null 값이 있는 열을 모두 생략했습니다. 이 문제는INSERT ... SELECT
문을 처리할 때 이진 로깅 형식을 선택하기 전에 열에 삽입을 표시했기 때문에 발생했습니다. 이제 문제가 해결되었습니다. (Bug #29110804, Bug #93423) - Replication: 특정 상황에서는 조건부 주석 복제가 실패할 수 있습니다. (Bug #28388217)
-libs-rpm
RPM 패키지는 이제libmysqlclient.so.18
의 제한 없는 기호 내보내기 문제를 방지하기 위해 시스템zlib
로 구축되었습니다. (Bug #30722389, Bug #98130)- 이벤트 스케줄러에서 메모리 누수가 발생했습니다.(Bug #30628268)
- 상황에 따라 memcached 명령으로 인해 초기화되지 않은 메모리 버퍼를 읽게 되어 오류가 발생할 수 있습니다. (Bug #30592346)
ALTER USER
를 사용하여 계정MAX_USER_CONNECTIONS
값을 재설정하면 모든 현재 계정 연결이 종료될 때까지 적용되지 않습니다(있는 경우). (Bug #30578217, Bug #97735)- 비결정적 함수에 대한 입력으로 열 값이 사용된 조건을 포함하여 구체화된 하위 쿼리가 잘못된 결과를 생성했습니다. (Bug #30368937)
CONCAT()
와CONCAT_WS()
는 드물게 서브스트링 처리가 잘못되어 잘못된 결과를 초래할 수 있습니다. (Bug #30350206, Bug #96950)- 이벤트를 제거하면 이벤트 스케줄링이 중단될 수 있습니다.(Bug #30301356, Bug #96849)
- 클라이언트 프로그램이 플러그인 라이브러리 외부에서 인증 플러그인을 로드할 수 있습니다. (Bug #30191834, Bug #30644258)
- 서버가 ‘ORDER BY’를 사용하는 하위 쿼리가 포함된 ‘UNION’을 올바르게 처리하지 못했습니다. (Bug #29952565)
- 술어가 과학적 표기법의 숫자 값을 포함하는
WHERE
절이 있는 쿼리가 올바르게 처리되지 않았습니다.또한 문자열로 지정된 특정 정수를 삽입하려고 하면 문자열에서 정수로의 변환에 성공하지 못할 때 서버가 종료됩니다. (Bug #29723340, Bug #30441969) - 이전에 mysqlpump는 옵션 파일에서
[mysql_dump]
및[client]
그룹을 읽었습니다. *mysqlpump는 이제[mysqlpump]
그룹을 읽습니다.[mysql_dump]
그룹은 여전히 허용되지만 사용되지 않습니다. (Bug #24733245, Bug #83144) - 다른 두 테이블을 조인한 파생 테이블에 조인된 테이블을 업데이트한 다중 테이블
UPDATE
문은 MySQL 5.6에서처럼 최적화되지 않았으며, 대신 ‘STRIGHT_JOIN’이 파생 테이블을 생성하는 하위 쿼리와 함께 사용된 것처럼 처리되었습니다. (Bug #97418, Bug #30488700)