审计日志说明
添加了新的 audit_log_filter_uninstall.sql 脚本,以简化删除 MySQL Enterprise Audit 的过程。有关此插件的信息,请参见 MySQL Enterprise Audit。(Bug #35611072)
身份验证注意事项
可插入的 FIDO 身份验证方法已被弃用,并可能在未来的 MySQL 版本中移除。(WL #15006)
C API注意事项
早期版本(如 MySQL 5.1 和 MySQL 5.0)中的服务器不宣传可插入式身份验证。当使用任何可插拔身份验证方法的较新客户端尝试连接这些较旧的服务器时,服务器会发出 “握手不良 “的错误消息。现在,这一修复可确保客户端身份验证(特别是 –default-auth 选项)在所有服务器上都能正常工作,包括那些不支持可插拔身份验证的服务器。此外,当服务器不支持可插入式身份验证时,mysql_native_password 现在取代缓存_sha2_password 成为默认身份验证方法。(错误 #90994,错误 #28082093)
mysql_ssl_set() C API 函数已被弃用,并将在未来的 MySQL 版本中删除。所有 mysql_ssl_set() 参数都有等效的 mysql_options() TLS 选项。(WL #11091)
编译注意事项
修正了 WITH_DEVELOPER_ENTITLEMENTS macOS CMake 选项;该选项因错字而未激活。 (Bug #35374026)
修正了使用 Clang 12 编译时产生的字符串连接警告。(错误 #111614,错误 #35549962)
进一步改进了 WITH_ZLIB 功能。
感谢 Nikolai Kostrigin 的贡献。(错误 #111549,错误 #35534309)
由于 Protobuf 22 添加了 Abseil 依赖关系,使用 WITH_PROTOBUF=system 在 Protobuf 22 或更新版本中构建失败。(错误 #111469、错误 #111623、错误 #35546459、错误 #35550389)。
使用 WITH_ZLIB=”system” 进行构建时,由于找不到 ZLIB,会破坏 MySQL 的构建。
感谢 Amazon 的贡献。(错误 #111467,错误 #35511210)。
参考文献:此问题是错误 #35057542。
在基于 EL7 aarch64 的平台上,修复了一个与获取 CPU 缓存行大小返回 0 有关的问题,该问题会导致 MySQL 服务器意外停止。(错误编号 110752,错误编号 35479763)。
参考文献:另请参见:错误 #107081,错误 #34095278。
C++ 标准化委员会的库工作组最近解决了一个问题(LWG-3865 Sorting a range of pairs),该问题改变了 std::pair 的比较运算符定义方式。此修复更新了 sql/auth 中两个文件中使用的相等运算符,以适应这一变化。
基于 Microsoft Visual Studio 团队的建议。(错误编号 110254、错误编号 35137978)。
停用和移除说明
复制:binlog_transaction_dependency_tracking 服务器系统变量现已弃用,并将在未来版本的 MySQL 中移除。现在,设置或检索该变量的值会触发警告,使用等效的启动选项 –binlog-transaction-dependency-tracking 也会触发警告。依赖于此变量(或选项)的应用程序应尽快停止使用。我们没有计划也不需要替换该变量或其功能。(WL #13964)
新旧服务器系统变量现已被弃用,每当设置或读取其中任何一个变量时,都会发出警告。预计这些变量将在未来版本的 MySQL 中移除;依赖它们的应用程序应尽快摆脱这种依赖关系。(WL #8609)
字符集–客户端-握手服务器选项最初用于从旧版本的MySQL升级,现在已被弃用,每当使用该选项时都会发出警告。预计未来版本的 MySQL 将移除该选项;依赖该选项的应用程序应尽快停止使用。(WL #13220)
此版本中的两项更改会影响 MySQL 中的权限授予。其中一项变更影响数据库授予;另一项变更涉及授予中使用的主机名。此处列出了这些变更:
数据库级授予。 在数据库级授予中使用 % 和 _ 字符作为通配符的做法已被弃用,在未来的 MySQL 版本中将取消这种通配符功能。这样做的目的是使这些字符始终被视为字面形式,因为只要 partial_revokes 服务器系统变量的值为 ON,它们就会被视为字面形式。
例如,当 partial_revokes 设置为 ON 时,GRANT SELECT ON db_.* TO user1 允许 user1 从名为 db_ 的数据库中的任何表中进行选择,但不允许 user1 从数据库 db1、db2、dbx、dby 等中的表中进行选择。一旦取消对grants 中数据库名称通配符的支持,就会出现这种情况。
授权中的主机名”%”。 在检查权限时,服务器将 % 作为 localhost 的同义词来处理,这种做法现在也已过时,因此也会在未来的 MySQL 版本中删除。
目前,授予 “user1’@’%”的权限也会授予 “user1’@’localhost”。这种自动分配现已过时;一旦删除该行为,就必须始终使用 localhost 主机名明确授予 “user1’@’localhost “权限。
注意事项
在上述两种情况下,用户会话或日志中都不会出现警告或错误,因为这样做很快就会产生大量此类信息。(WL #14280,WL #15676)
INFORMATION_SCHEMA.PROCESSLIST 已被弃用,并可能在未来的 MySQL 版本中删除。因此,使用该表的 SHOW PROCESSLIST 实现也已废弃。
建议改用性能模式的 SHOW PROCESSLIST 实现。因此,performance_schema_show_processlist 也已被弃用,并将在未来的 MySQL 版本中删除。(WL #15915)
对 TLS_AES_128_CCM_8_SHA256 密钥套件的支持已被弃用,并将在未来的 MySQL 版本中删除。任何使用 tls_ciphersuites 或 admin_tls_ciphersuites 系统变量进行设置的尝试现在都会返回警告。
以前支持的几种密码现在已被弃用,并将在未来版本的 MySQL 中删除。如果使用ssl_cipher或admin_ssl_cipher系统变量指定了已废弃的密码,则现在会发出警告。以下密码将继续得到支持,而不会发出报废警告:
ECDHE-ECDSA-AES128-GCM-SHA256
ECDHE-ECDSA-AES256-GCM-SHA384
ECDHE-RSA-AES128-GCM-SHA256
ECDHE-RSA-AES256-GCM-SHA384
ECDHE-ECDSA-CHACHA20-POLY1305
ECDHE-RSA-CHACHA20-POLY1305
ecdhe-ecdsa-aes256-ccm
ecdhe-ecdsa-aes128-ccm
DHE-RSA-AES128-GCM-SHA256
DHE-RSA-AES256-GCM-SHA384
dhe-rsa-aes256-ccm
dhe-rsa-aes128-ccm
DHE-RSA-CHACHA20-POLY1305(WL #15800)
更多 MySQL :: MySQL 8.0 Release Notes :: Changes in MySQL 8.0.35 (2023-10-25, General Availability)