
MySQL 8.0.16 릴리즈 노트 #1 내용입니다.
- 계정 관리 노트 (Account Management Notes)
- C API 노트 (C API Notes)
- 문자 집합 지원 (Character Set Support)
- 컴파일 노트 (Compilation Notes)
- 구성 참고 노트 Configuration Notes
- 사용 중지 및 제거 노트 (Deprecation and Removal Notes)
- 설치 노트 (Installation Notes)
- 패키지 노트 (Packaging Notes)
- 파서 노트 (Parser Notes)
- 성능 스키마 노트 (Performance Schema Notes)
- 플러그인 노트 (Plugin Notes)
- 보안 노트 (Security Notes)
- 공간 데이터 지원 (Spatial Data Support)
- SQL 구문 노트 (SQL Syntax Notes)
- sys 스키마 노트 (sys Schema Notes)
- 테스트 모음 노트 (Test Suite Notes)
- X 플러그인 노트 (X Plugin Notes)
- 기능 추가 및 변경 (Functionality Added or Changed)
- 버그 수정 (Bugs Fixed)
계정 관리 노트 (Account Management Notes)
- 이전에는
DROP ROLE
권한을 가진 사용자가DROP ROLE
문을 사용하여 잠기거나 잠금 해제된 계정을 삭제할 수 있었습니다. 이제DROP ROLE
권한을 가진 사용자는 잠긴 계정을 삭제할 때만DROP ROLE
를 사용할 수 있습니다(잠금 해제된 계정은 역할뿐만 아니라 서버 로그인에 사용되는 사용자 계정일 수 있음).CREATE USER
권한을 가진 사용자는DROP ROLE
를 사용하여 잠기거나 잠금 해제된 계정을 삭제할 수 있습니다. (Bug #28953158, Bug #93263) - MySQL 계정 관리 기능이 다음과 같이 변경되었습니다.
- MySQL은 이제 새로운
SYSTEM_USER
권한의 유무에 따라 시스템과 일반 사용자를 구분하는 사용자 계정 범주 개념을 통합했습니다.- 시스템 사용자는
SYSTEM_USER
권한을 가진 사용자입니다. 시스템 사용자는 시스템 계정과 일반 계정 모두에서 작업을 수행할 수 있습니다. - 일반 사용자는
SYSTEM_USER
권한이 없는 일반 사용자입니다. 일반 사용자는 일반 계정에서 작업을 수행할 수 있지만 시스템 계정에서는 수행할 수 없습니다.
SYSTEM_USER
를 사용하면 시스템 계정에서도 작업을 수행할 수 있습니다.SYSTEM_USER
는 다른 권한을 의미하지 않으므로 주어진 계정 작업을 수행할 수 있는 기능은 다른 필요한 권한을 보유한 상태로 유지됩니다. 예를 들어 사용자가 일반 계정에SELECT
및UPDATE
권한을 부여할 수 있는 경우SYSTEM_USER
를 사용하면 시스템 계정에SELECT
및UPDATE
권한을 부여할 수도 있습니다.시스템과 일반 계정을 구분하면SYSTEM_USER
권한이 있는 계정을 권한이 없는 계정으로부터 보호하여 특정 계정 관리 문제를 보다 효과적으로 제어할 수 있습니다. 예를 들어CREATE USER
권한을 사용하면 새 계정을 만들 뿐만 아니라 기존 계정을 수정 및 제거할 수 있습니다. 시스템 사용자 개념이 없으면CREATE USER
권한을 가진 사용자는 ‘root’ 계정을 포함하여 기존 계정을 수정하거나 삭제할 수 있습니다. 시스템 사용자 개념은 시스템 사용자만 수행할 수 있도록 ‘root’ 계정(시스템 계정 자체)에 대한 수정을 제한할 수 있도록 합니다.CREATE USER
권한을 가진 일반 사용자는 기존 계정을 수정하거나 삭제할 수 있지만 일반 계정만 삭제할 수 있습니다.SYSTEM_USER
권한의 다른 운영상의 의미는 다음과 같습니다.SYSTEM_USER
권한을 가진 세션은 다른 필수 권한과 함께SYSTEM_USER
권한을 가진 사용자만 종료할 수 있습니다.SYSTEM_USER
권한이 있는 계정은 다른 필수 권한과 더불어SYSTEM_USER
권한이 있는 사용자만 저장된 개체에 대한DEFINFIER
로 지정할 수 있습니다.SYSTEM_USER
권한이 있는 역할은mandatory_roles
시스템 변수 값에 나열할 수 없습니다.
- 시스템 사용자는
- 이전에는 특정 스키마를 제외하고 전체적으로 적용되는 권한을 부여할 수 없었습니다. 이제 새
partial_revokes
시스템 변수가 활성화된 경우 가능합니다. 예를 들어, 다음 문을 사용하면 계정이mysql
시스템 스키마의 테이블을 제외한 모든 테이블에서 선택하거나 테이블에 삽입할 수 있습니다.SET PERSIST partial_revokes = ON;
GRANT SELECT, INSERT ON *.* TO u1;
REVOKE SELECT, INSERT ON mysql.* FROM u1;서버는mysql.user
시스템 테이블의User_attributes
열에Restrictions
특성을 추가하여 부분 취소를 기록합니다.SHOW GRANTS
는 출력에REVOKE
문을 포함시켜 부분 취소를 나타냅니다. 메모partial_revokes
를 사용하도록 설정하면 MySQL은 스키마 이름의 이스케이프되지 않은_
및%
SQL 와일드카드 문자를 마치\_
및\%
로 이스케이프된 것처럼 리터럴 문자로 처리합니다. 이렇게 하면 권한 할당의 해석이 변경되므로partial_revokes
를 사용할 수 있는 MySQL 설치의 스키마 권한 할당에서 이스케이프되지 않은 와일드카드 문자를 피하는 것이 좋습니다.자세한 내용은 Privilege Restriction Using Partial Revokes을 참조하십시오. GRANT
문에는 문 실행에 사용할 권한 컨텍스트에 대한 추가 정보를 지정하는 새AS *
user* [WITH ROLE]
절이 있습니다. 이 구문은 SQL 수준에서 볼 수 있지만, 이러한 제한이 이진 로그에 표시되도록 하여 부분 취소에 의해 부과된 인가자 권한 제한의 모든 노드에서 동일한 복제를 사용하도록 설정하는 것이 주된 목적입니다.자세한 내용은 GRANT Statement을 참조하십시오.
- MySQL은 이제 새로운
C API 노트 (C API Notes)
- MySQL C API는 이제 MySQL 서버와의 통신을 차단하지 않는 비동기 함수를 지원합니다.
mysql_real_connect_nonblocking()
mysql_real_query_nonblocking()
mysql_store_result_nonblocking()
mysql_next_result_nonblocking()
mysql_fetch_row_nonblocking()
mysql_free_result_nonblocking()
문자 집합 지원 (Character Set Support)
- MySQL은 이제
utf8mb4
유니코드 문자 집합에 대한 새로운 중국어 조합utf8mb4_zh_0900_as_cs
를 지원합니다.utf8mb4_zh_0900_as_cs
는 MySQL에서 유니코드에 사용할 수 있는 첫 번째 중국어 관련 조합입니다. 이 대조는 악센트 및 대소문자를 구분합니다. 해당 언어의 특성은 언어별 규칙이 적용되는 경우 우선한다는 점을 제외하고는utf8mb4_0900_as_cs
와 유사합니다. 자세한 내용은 Unicode Character Sets을 참조하십시오.
컴파일 노트 (Compilation Notes)
- CMake를 사용하면 Clang용 lld 링커가 사용 가능하고 명시적으로 비활성화되지 않은 경우 빌드 프로세스가 Clang용 lvm 링커와 연결됩니다. 이 링커를 사용하지 않으려면
-DUSE_LD_LLD=OFF
옵션을 지정하십시오. (Bug #29264211) - 이제 EL6과 EL7을 기반으로 컴파일러를
devtoolset-7
이 아닌devtoolset-8
에서 사용하려고 합니다. (Bug #29198846) - 서버 빌드를 위한 Boost 라이브러리의 최소 버전은 1.69.0입니다. (Bug #29114233)
- Visual Studio 2017에 대한 구성 시간 확인이 충분히 구체적이지 않았습니다. 이제 MySQL 컴파일을 확인하려면 버전 번호 1915인 Visual Studio 업데이트 15.8 이상이 필요합니다. (Bug #28970895)
- 이제 C++14를 사용하여 MySQL을 컴파일할 수 있습니다. 컴파일러 지원에는 다음과 같은 최소 버전 요구 사항이 적용됩니다.
- GCC 5.3 (Linux)
- Clang 4.0 (FreeBSD)
- XCode 9 (macOS)
- Developer Studio 12.6 (Solaris)
- Visual Studio 2017 (Windows)
구성 참고 노트 (Configuration Notes)
- 이제 MySQL을 구성하려면 CMake 버전 이상의 3.4.3이 필요합니다. 일부 Red Hat 및 Oracle Linux 플랫폼에서는 cmake가 아닌 cmake3를 사용해야 합니다. (Bug #29246216)
WITH_LZMA
CMake 옵션이 제거되었습니다. (Bug #29153932, Bug #93755)- 이제
EXCLUDE_FROM_ALL
옵션이CMake
구성에서 적절하게 사용되므로 라이브러리가 실제로 실행 파일에 의해 사용되는 경우에만 구축됩니다. (Bug #29052599) - 새
WITH_JEMALLOC
CMake 옵션은-ljemalloc
과(와) 링크할지 여부를 나타냅니다. 활성화되어 있는 경우 기본 제공malloc()
, 즉calloc()
, 즉realloc()
루틴 및free()
루틴이 비활성화됩니다. 기본값은OFF
입니다. (Bug #29027974) - 새
WITH_LSAN
CMake 옵션은 AddressSanitizer 없이 LeakSanitizer를 실행할지 여부를 나타냅니다. 기본값은OFF
입니다. (Bug #28936574) - 새
WITH_ROUTER
CMake 옵션은 MySQL Router를 빌드할지 여부를 나타냅니다. 기본값은ON
입니다. (Bug #28759234) - MySQL Server는 이제 정상 작동 모드에서 서버를 실행하지 않고도 시작 구성의 문제를 확인할 수 있는
--validate-config
옵션을 지원합니다. 자세한 정보는 Server Configuration Validation을 참조하십시오.
사용 중지 및 제거 노트 (Deprecation and Removal Notes)
- 이제
TempTable
스토리지 엔진은 디스크의 내부 임시 테이블을 관리하기 위해 항상InnoDB
를 사용하며, 이 작업에 사용된 스토리지 엔진을 더 이상 사용자가 구성할 수 없습니다.internal_tmp_disk_storage_engine
시스템 변수가 제거되었습니다. (Bug #91377, Bug #28234637)참조 : 참고사항 : Bug #28081038, Bug #82556, Bug #27408352.
설치 노트 (Installation Notes)
- 이전에 MySQL의 새 버전을 설치한 후 MySQL Server는 다음 시작 시 데이터 사전 테이블을 자동으로 업그레이드했습니다. 이때 DBA는 mysql_upgrade를 수동으로 호출하여 ‘mysql’ 스키마의 시스템 테이블과 ‘sys’ 스키마 및 사용자 스키마와 같은 다른 스키마의 개체를 업그레이드해야 했습니다.이제 서버는 mysql_upgrade에서 이전에 처리한 작업을 수행합니다. 새 MySQL 버전을 설치한 후 서버는 다음 시작 시 필요한 모든 업그레이드 작업을 자동으로 수행하며 mysql_upgrade를 호출하는 DBA에 종속되지 않습니다. 또한 서버는 도움말 테이블의 내용을 업데이트합니다(mysql_upgrade는 업데이트하지 않았습니다). 새로운
--upgrade
서버 옵션은 서버가 자동 데이터 사전 및 서버 업그레이드 작업을 수행하는 방법을 제어합니다. 자세한 내용은 Upgrading MySQL을 참조하십시오.업그레이드 절차를 변경하면 다음과 같은 몇 가지 권장 사항이 없어집니다.- mysql_upgrade는 더 이상 필요하지 않으므로 더 이상 사용되지 않습니다.
--no-dd-upgrade
서버 옵션은--upgrade
옵션이 대체되므로 더 이상 사용되지 않습니다.
--no-dd-upgrade
옵션은 향후 MySQL 버전에서 제거됩니다. (Bug #28146052, Bug #28162609, Bug #91205, Bug #29185739, Bug #27740692, Bug #28547424, Bug #91961)
패키지 노트 (Packaging Notes)
- MySQL Cluster 8.0의 Docker 이미지가 available for download 입니다. (Bug #30010921, Bug #96084)
- 시스템
curl
라이브러리에 연결하는 대신curl
을 포함하는 이진 패키지는 이제curl
7.64.0을 사용합니다.(Bug #29357198) - Henry Spencer regex 라이브러리(
extra/regex
)는 MySQL 8.0에서 더 이상 사용되지 않으며 소스 배포에 더 이상 없습니다. (Bug #29192306) - 새 버전의
glibc
에는 Sun RPC가 포함되어 있지 않으므로 RPM 패키지는 이제libtirpc
및rpcgen
에 종속됩니다. (Bug #28995257) support-files/magic
파일이 MySQL 소스 트리에서 제거되었습니다. 대부분의 MySQL 파일 형식은 운영 체제 파일 형식 기능을 제공합니다. (Bug #18335080, Bug #71898)- MySQL은 이제 MySQL Server 및 테스트 제품군을 위한 “Minimal Install” Linux 일반 이진 다운로드 패키지를 제공합니다. 최소 설치 패키지는 디버그 이진 파일을 제외하며 디버그 기호를 제거하므로 일반 Linux 일반 이진 패키지보다 크기가 훨씬 작습니다. https://dev.mysql.com/downloads/에서 다운로드할 수 있습니다.
- 이제 MySQL Enterprise Edition용 도커 이미지를 My Oracle Support에서 다운로드할 수 있습니다.
파서 노트 (Parser Notes)
- 파서는 더 이상 테이블 별칭을 지정하기 위해 문서화되어 있지 않은 비표준
= *
alias_name*
구문을 허용하지 않습니다. (Bug #29205289) - 이제 파서는 이전에 이러한 사용이 제한되었던 저장된 프로그램 내의 레이블로 다음과 같은 몇 가지 추가 예약되지 않은 키워드를 사용할 수 있도록 허용합니다.
ACCOUNT
,ALWAYS
,BACKUP
,CLOSE
,FORMAT
,GROUP_REPLICATION
,HOST
,INVISIBLE
,OPEN
,OPTIONS
,OWNER
,PARSER
,PORT
,REMOVE
,RESTORE
,ROLE
,SECONDARY
,SECONDARY_ENGINE
,SECONDARY_LOAD
,SECONDARY_UNLOAD
,SECURITY
,SERVER
,SOCKET
,SONAME
,UPGRADE
,VISIBLE
,WRAPPER
. (Bug #29033659) - 파서가 외부 조인 (
{ OJ *
outer_join* }
)에 대한 ODBC 이스케이프 구문을 수락했지만OJ
이외의 식별자도 수락했습니다. 이제 파서는OJ
만 수신합니다.노트이제OJ
는 예약되지 않은 키워드 입니다.(Bug #22320942)
성능 스키마 노트 (Performance Schema Notes)
- 새 성능 스키마
keyring_keys
테이블은 MySQL Keyring의 키에 대한 메타데이터를 표시합니다. 키 메타데이터에는 키 ID, 키 소유자 및 백엔드 키 ID가 포함됩니다.keyring_keys
테이블은 키 내용과 같은 중요한 키링 데이터를 노출하지 않습니다. The keyring_keys table를 참조하십시오.
플러그인 노트 (Plugin Notes)
- MySQL에는 이제 서버가 받은
CREATE TABLE
문을 구문 분석하고 실행하기 전에 수정하는 ‘ddl_rewriter’ 플러그인이 포함되어 있습니다. 플러그인은 암호화된 데이터베이스 또는 데이터 디렉토리 외부에 저장된 테이블을 가진 SQL 덤프 파일에서 테이블을 복원할 때 유용할 수 있는Encryption
,'DATA DIRECTORY
및INDEX DIRECTORY
절을 제거합니다. 예를 들어 플러그인은 이러한 덤프 파일을 암호화되지 않은 인스턴스로 복원하거나 데이터 디렉토리 외부의 경로에 액세스할 수 없는 환경에서 복원할 수 있습니다. 설치되면ddl_rewriter
는 성능 스키마memory/rewriter/ddl_rewriter
계측기를 노출하여 플러그인 메모리 사용을 추적합니다. 자세한 내용은 The ddl_rewriter Plugin를 참조하십시오.
보안 노트 (Security Notes)
- 이전에는 허가 테이블이 손상된 경우 MySQL 서버가 오류 로그에 메시지를 기록했지만
--skip-grant-tables
옵션이 지정된 것처럼 계속되었습니다. 이로 인해 실제로--skip-grant-tables
가 지정되지 않은 경우 서버가 예기치 않은 상태로 작동하게 되었습니다. 이제 서버는--skip-grant-tables
로 시작하지 않는 한 오류 로그에 메시지를 쓴 후 중지됩니다. (이 옵션을 사용하여 서버를 시작하면 진단 작업을 수행하기 위해 연결할 수 있습니다.) (Bug #29394501, Bug #94394) - 일부 플랫폼(윈도우즈, macOS 및 일반 리눅스)에서 MySQL과 함께 번들된 OpenSSL 라이브러리가 버전 1.0.2r로 업그레이드되었습니다. 다른 모든 플랫폼에서는 MySQL이 설치된 OpenSSL을 사용합니다. 새 OpenSSL 버전에서 수정된 문제는 http://www.openssl.org/news/vulnerabilities.html에서 설명합니다.(Bug #28988091)
- 익명 사용자에게 역할을 부여하는 것은 더 이상 지원되지 않습니다. 이러한 역할로 인해 문제가 발생했기 때문입니다. (Bug #28910120)
- OpenSSL 1.1.1은 암호화된 연결에 대해 TLS v1.3 프로토콜을 지원하며, 이제 서버와 클라이언트가 모두 OpenSSL 1.1.1 이상을 사용하여 컴파일된 경우 MySQL도 TLS v1.3을 지원합니다.
- 일부 TLSv1.3 암호 스위트는 기본적으로 실행됩니다.
tls_ciphersuites
시스템 변수를 사용하면 서버가 허용하는 TLSv1.3 암호 스위트를 명시적으로 지정할 수 있습니다. --tls-ciphersuites
클라이언트 옵션은 클라이언트가 허용하는 TLSv1.3 암호 스위트를 지정합니다. 이 옵션은 다음 프로그램에 적용됩니다. mysql, mysqladmin, mysqlbinlog, mysqlcheck, mysqldump, mysqlimport, mysqlpump, mysqlshow, mysqlslap, mysqltest, mysql_secure_installation, 및 mysql_upgrade.mysql_options()
C API 함수에는 클라이언트 프로그램이 허용하는 TLSv1.3 암호 스위트를 클라이언트 라이브러리 내에서 지정하는 새로운MYSQL_OPT_TLS_CIPHERSUITES
옵션이 있습니다.
- 일부 TLSv1.3 암호 스위트는 기본적으로 실행됩니다.
- 서버가 현재 새 연결에 사용하는 TLS 컨텍스트는 런타임에 재구성할 수 있습니다. 이 기능은 예를 들어 너무 오래 실행되어 SSL 인증서가 만료된 MySQL 서버가 재시작되지 않도록 하는 데 유용할 수 있습니다. 동적 SSL 재구성 기능은 다음과 같은 변경 사항을 기반으로 합니다.
- TLS 컨텍스트를 정의하는 시스템 변수는 동적이며 런타임에 변경할 수 있습니다.
ssl_ca
,ssl_capath
,ssl_cert
,ssl_cipher
,ssl_crl
,ssl_crlpath
,ssl_key
,tls_ciphersuites
.tls_version
. ALTER INSTANCE
문은 컨텍스트를 정의하는 시스템 변수의 현재 값에서 TLS 컨텍스트를 재구성하는RELOAD TLS
작업을 지원합니다.- 이러한 상태 변수는 서버가 새 연결에 사용하는 TLS 컨텍스트를 반영합니다.
Current_tls_ca
,Current_tls_capath
,Current_tls_cert
,Current_tls_cipher
,Current_tls_ciphersuites
,Current_tls_crl
,Current_tls_crlpath
,Current_tls_key
,Current_tls_version
.ALTER INSTANCE RELOAD TLS
는 TLS 컨텍스트를 재구성할 때 해당 시스템 변수 값에서 이러한 상태 변수를 업데이트합니다.
- TLS 컨텍스트를 정의하는 시스템 변수는 동적이며 런타임에 변경할 수 있습니다.
- MySQL 8.0에서 기본 인증 플러그인이
mysql_native_password
에서caching_sha2_password
로 변경되었습니다.caching_sha2_password
는sha256_password
인증 플러그인의 기능의 상위 집합을 제공하므로sha256_password
는 현재 사용되지 않으며 향후 MySQL 버전에서 제거됩니다.sha256_password
를 사용하여 인증하는 MySQL 계정은 대신caching_sha2_password
를 사용하도록 마이그레이션해야 합니다.
공간 데이터 지원 (Spatial Data Support)
- 이제
ST_Length()
함수는 반환 값을 지정할 단위를 사용할 수 있는 선택적 두 번째 인수를 사용합니다. 허용되는 단위는 새로운INFORMATION_SCHEMA
ST_UNITS_OF_MEASURE
표에 나열된 단위입니다. LineString and MultiLineString Property Functions, 및 The INFORMATION_SCHEMA ST_UNITS_OF_MEASURE Table 을 참조하십시오.
SQL 구문 노트 (SQL Syntax Notes)
- Incompatible Change: MySQL 5.7에서
CONSTRAINT *
symbol*
절 없이InnoDB
테이블에 대한FOREIGN KEY
정의를 지정하거나symbol
없이CONSTRAINT
키워드를 지정하면InnoDB
가 생성된 제약 조건 이름을 사용하게 됩니다. 이 동작은 MySQL 8.0에서 변경되었으며,InnoDB
는 생성된 이름 대신FOREIGN KEY *
index_name*
값을 사용합니다. 제약 조건 이름은 스키마(데이터베이스)별로 고유해야 하므로 스키마별로 고유하지 않은 외부 키 인덱스 이름으로 인해 오류가 발생했습니다. 이러한 오류를 방지하기 위해 새 제약 조건 이름 지정 동작이 복구되었으며InnoDB
는 다시 생성된 제약 조건 이름을 사용합니다.InnoDB
와의 일관성을 위해CONSTRAINT *
symbol*
절이 지정되지 않았거나CONSTRAINT
키워드가symbol
없이 지정된 경우 이제 ‘NDB’ 스토리지 엔진은 생성된 제약 조건 이름을 사용합니다. MySQL 5.7 이전 MySQL 8.0 릴리스에 기반한 ‘NDB’ 릴리스에서는FOREIGN KEY *
index_name*
값을 사용했습니다.위에서 설명한 변경 사항으로 인해 이전 외부 키 제약 조건 이름 지정 동작에 따라 달라지는 응용 프로그램에 비호환성이 발생할 수 있습니다. (Bug #29173134) - 이전에 MySQL은 제한된 형식의
CHECK
제약 조건 구문을 허용했지만 구문 분석 및 무시했습니다. MySQL은 이제 모든 스토리지 엔진에 대해 테이블 및 열CHECK
제약 조건의 핵심 기능을 구현합니다. 제약 조건은CREATE TABLE
및ALTER TABLE
문을 사용하여 정의됩니다. 새INFORMATION_SCHEMA.CHECK_CONSTRAINTS
테이블은 테이블에 정의된 ‘CHECK’ 제약 조건에 대한 정보를 제공합니다. 자세한 내용은 CHECK Constraints 을 참조하십시오. (Bug #11744849, Bug #3464, Bug #3465, Bug #11746042, Bug #22759)
sys 스키마 노트 (sys Schema Notes)
- MySQL에는 이제 성능 스키마 데이터를 포맷하거나 검색하는 기본 제공 SQL 함수가 포함되어 있으며, 이러한 함수는 기존
sys
스키마 저장 함수와 동등한 함수로 사용될 수 있습니다.FORMAT_BYTES()
: 바이트 카운트를 단위가 있는 값으로 변환합니다.sys.format_bytes()
와 비슷합니다.FORMAT_PICO_TIME()
: 피코초 단위의 시간을 단위 값으로 변환합니다.sys.format_time()
와 비슷합니다.PS_THREAD_ID()
: 지정된 스레드에 대한 성능 스키마 스레드 ID를 반환합니다. NULL이 아닌 인수와 함께 호출되는sys.ps_thread_id()
와 유사합니다.PS_CURRENT_THREAD_ID()
: 현재 스레드에 대한 성능 스키마 스레드 ID를 반환합니다. ‘NULL’ 인수와 함께 호출된sys.ps_thread_id()
의 바로 가기입니다.
sys.
가 필요한sys
함수와 달리 모든 스키마에서 호출할 수 있으며 한정자가 필요하지 않습니다. 스키마 한정자 또는sys
가 현재 스키마임을 나타냅니다.기본 제공 함수는 해당sys
함수를 대체하며, 현재는 사용되지 않으며 향후 MySQL 버전에서 제거될 예정입니다.sys
기능을 사용하는 응용 프로그램은sys
기능과 기본 제공 기능 간의 몇 가지 사소한 차이점을 염두에 두고 대신 기본 제공 기능을 사용하도록 조정해야 합니다. Performance Schema Functions 을 참조하십시오.
테스트 모음 노트 (Test Suite Notes)
- mysql-test-run.pl는 이제 여러 mysql-test-run.pl 인스턴스에서 모든 chroot 환경의 공통 위치로 사용할 고유 ID 디렉토리를 지정하도록 설정할 수 있는
MTR_UNIQUE_IDS_DIR
환경 변수를 지원합니다. 따라서 이러한 인스턴스는 포트 번호를 예약할 때 충돌을 방지할 수 있습니다. Facebook 팀 기고해 주셔서 감사합니다. (Bug #29221085, Bug #93950) - my_safe_process 프로그램의 이름이 mysqltest_safe_process로 변경되었으며 이제 테스트 스위트 파일이 아닌 mysqltest와 같은 다른 이진 파일과 함께 설치됩니다. (Bug #29198969)
- ‘all_persisted_variables’ 테스트에 대한 다음과 같은 변경 사항이 구현되었습니다.
- 로컬 변수에 포함시킴으로써 검정 출력에 있는 하드 코드된 값의 수를 제한합니다. 그런 다음 새로운 시스템 변수를 추가하는 맨 위에 재기초되는 새 패치는 원래 테스트 사례의 행 수를 변경할 필요가 없으므로 기본 재배치 프로세스가 더 쉬워집니다.
- 수정된 버그의 항목을 제거하고 열린 버그로 인해 테스트되지 않은 시스템 변수를 포함하도록 쿼리를 수정합니다.
X 플러그인 노트 (X Plugin Notes)
- 쿼리 정리가 종료되고 세션이 비활성화된 후 이전에 X 플러그인이 클라이언트에
StmtExecuteOk
메시지를 반환했습니다. 이제 결과가 알려진 즉시 쿼리 정리 전에 메시지가 반환되므로 성능이 현저하게 향상됩니다. (Bug #28997370) - I/O 인터페이스를 준비하지 못해 사용자 연결을 사용할 수 없을 때 X 플러그인이 “X Plugin ready for connections” 시스템 메시지를 기록했습니다. (Bug #28906360)
- X 플러그인 코드의 일부 항목은 기본적으로 성능 스키마에 대해 계측되지 않았습니다. (Bug #28898155)
- 이제 X 프로토콜은 연결을 다시 인증하거나 닫지 않고 세션 상태를 재설정하는
COM_RESET_CONNECTION
유틸리티 명령을 지원합니다. (Bug #28732455) - Clang 8 컴파일러를 사용하여 MySQL Server 소스 코드를 빌드할 때 X 플러그인에서 컴파일 경고가 발생했습니다. (Bug #28732158)