MySQL 8.1 及 MySQL 8.0.34 正式发布 MySQL 是世界上最流行的开源数据库之一,它具有高性能、高可靠性、高扩展性等特点,广泛应用于各种场景。近日,MySQL 发布了两个新版本,分别是 MySQL 8.1 创新版和 MySQL 8.0.34 稳定版。这两个版本都带来了一些新功能和改进,例如对 Linux 6.4/6.5、Red Hat Enterprise Linux 8.8/9.3、OpenGL 4.1 等的支持,以及对 OCI、GUI、TPM 1.2、macOS 13.3 Ventura 和 Windows 11 的优化。本文将为您概述这两个版本的主要更新内容,以及一些注意事项。


MySQL 8.1 及 MySQL 8.0.34 现已正式发布。从此,MySQL 将开启创新版和稳定版同时发行的阶段。MySQL 8.1 是 MySQL 的首个创新版,该版本主要增加了如下功能:

捕捉 EXPLAIN FORMAT=JSON 输出, 为 EXPLAIN FORMAT=JSON 增加 INTO 选项,可以将 JSON 格式的输出保存在一个用户变量中。

保留客户端注释,MySQL8.1 保留 mysql 客户端的注释,如果需要使用之前的行为,需要使用 --skip-comments 选项

MySQL Replication 更改 SOURCE_RETRY_COUNT,CHANGE REPLICATION SOURCE TO 语句中 SOURCE_RETRY_COUNT 的默认值改为 10,这意味着,使用此选项和 SOURCE_CONNECT_RETRY (60) 的默认值,副本在重新连接尝试之间等待 60 秒,并在超时和故障转移之前以此速率尝试重新连接 10 分钟。

group_replication_set_as_primary () 及 DDL 语句,在选择一个新的主节点之前,group_replication_set_as_primary () 函数需要等待所有事务完成前正在进行的 DDL 语句。

版本特定注释中使用的 MySQL 版本号现在支持由一个或两个数字组成的主版本,这意味着整个版本现在可以是五位数或六位数长。

强化关闭服务器过程的日志,随着 MySQL 服务器、插件和组件的启动和关闭消息的增加,强化关闭过程的日志,附加功能应该有助于故障排除和调试问题,特别是在服务器需要很长时间才能关闭的情况下。

增加了 SHOW PARSE_TREE语句,该语句显示了 select 语句的 json 格式解析树。此语句仅用于测试和开发,而不是用于生产。它仅用于调试版本中

增加了 tls-certificates- enforsed - validation 系统变量,允许 DBA 在服务器启动时或使用 ALTER INSTANCE RELOAD TLS 语句在运行时重新加载证书时强制执行证书验证。启用强制后,发现证书无效时将在启动时停止服务器调用,防止在运行时加载无效证书,并发出警告。

添加了一些特定于组复制插件的状态变量,这些变量可以改进对网络不稳定的诊断和故障排除,为每个组成员提供有关网络使用情况、控制消息和数据消息的统计信息。

添加了服务器系统变量,用来控制使用 LDAP 可插拔身份验证连接到 MySQL 服务器的 MySQL 帐户在 LDAP 服务器关闭或无响应时必须等待的时间。对于以下简单且基于 sasl 的 LDAP 身份验证变量,新的默认超时为 30 秒,连接和响应超时只能通过 Linux 平台上的系统变量进行配置。有关更多信息,请参见设置 LDAP 可插拔身份验证的超时时间。

除了新增功能外,还做了以下调整,这部分内容基本上与 MySQL8.0.34 一致。

用户管理方面,增加了一个系统变量 “validate_password.changed_characters_percentage” 用于密码验证。该变量用于配置用户在更改密码时必须修改的字符数量,数量以当前密码的字符数百分比计算。假设该变量值设为 50,则新密码中至少有一半的字符需要修改。

MySQL 审计方面,增加新的功能,在安装审计插件时,可以指定用户存储日志过滤条件的数据库。例如,

$> mysql -u root -D database_name -p < audit_log_filter_linux_install.sql

此外,MySQL 审计增加了使用调度器组件来配置和执行循环任务,刷新内存缓存的新功能。

二进制日志方面,在 libmysqlclient.so 库中增加了新的函数 mysql_binlog_open (),mysql_binlog_fetch (),及 mysql_binlog_close (),使得开发者能够访 MySQL 服务器的二进制日志。

兼容性方面,改进了 Windows 的 MSVC_CPPCHECK 支持,并检查类似的 MSVC 警告 “维护” 模式。

Windows 编译方面,改善了 WIN_DEBUG_NO_INLINE=1 的支持,使用量将超过库的 65535 个对象的限制。

此外,对 robin-hood-hashing、ICU 文件及 ZSTD 的版本等进行了升级。

由于 MySQL 提供了 mysql shell 和 mysqldump 用于备份,因此,mysqlpump 将进行降级处理,使用时将有警告提示,未来将弃用该产品。

用于复制的服务器变量 “sync_relay_log_info”、“binlog_format”,在此版本中降级处理,未来将弃用该变量。因此,与其关联的 “log_bin_trust_function_creators” 和 “log_statements_unsafe_for_binlog” 也将降级使用,最终弃用。需要注意,“binlog_format” 弃用后,MySQL 的二进制日志格式仅支持 “row-based”。

用于组复制的服务器变量 “group_replication_recovery_complete_at”,及 “mysql_native_password” 认证插件降级使用,未来将弃用。

此外,包括审计日志的传统过滤模式、mysql_ssl_rsa_setup 程序,及密钥环文件插件等也进行降级处理,未来将弃用。

用户需要注意,以往的特定与版本的注释方式 “/*!80034KEY_BLOCK_SIZE=1024*/ 或 /*!80034 KEY_BLOCK_SIZE=1024*/” 不考虑版本号后面的空格,但未来版本的该行为可能会发生变化。因此,从此版本开始,请用户在版本号后面加入空格使用,

SQL 语法方面,此版本支持使用 CURRENT_USER () 、SESSION_USER ()、USER (), SYSTEM_USER () 在建表语句或更改表语句中作为 Varchar 或 TEXT 类型字段的默认值。

除了上述提到的更改和弃用,MySQL 8.1 及 MySQL 8.0.34 版本做了大量的错误修复,使得 MySQ L8.0 进入一个稳定的状态。详细的变更内容,可访问 MySQL 官网。

MySQL 8.1 创新版和 MySQL 8.0.34 稳定版是 MySQL 的重要里程碑,标志着 MySQL 将开启创新版和稳定版同时发行的阶段。这将为用户提供更多的选择和灵活性,也将促进 MySQL 的持续创新和发展。如果您是 MySQL 的用户,或者想了解更多关于 MySQL 的信息,不妨下载这两个版本来试试吧。下载地址是 https://dev.mysql.com/downloads/mysql/ ,更新日志可以查看 https://dev.mysql.com/doc/relnotes/mysql/8.1/en/ 和 https://dev.mysql.com/doc/relnotes/mysql/8.0/en/ 。希望本文能够对您有所帮助,感谢您的阅读!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。