MySQL 8.2.0 发行!有哪些值得关注的新功能?

徐轶韬 2023-11-02 10:13:35
MySQL新的进化版8.2.0于2023年10月25日发行,让我们一起快速浏览一下该版本发生哪些变化。

 

一、审计日志

 

添加了新的“audit_log_filter_uninstall.sql”脚本,简化删除“MySQL Enterprise Audit”的过程。认证 * “mysql_native_password”插件已弃用,用户可以在服务器启动时将其禁用。如果服务器端“mysql_native_password”认证方法被禁用,使用该方法的旧的客户端插件将无法连接服务器,并在错误日志中写入“Access denied”消息。 

 

MySQL 企业版现在支持MySQL服务器使用智能卡、安全设备等方法进行身份验证。该身份验证方法基于FIDO 和 FIDO2 标准。它使用服务器端的“authentication_webauthn”和客户端的“authentication_webauthn_client”实现C API。

 

客户端库现在支持使用查询预处理语句的属性,并引入一个新的 C API声明函数“mysql_stmt_bind_named_param()”,用以替换现已弃用的“mysql_stmt_bind_param()”函数。与 “mysql_stmt_bind_param() ”不同,“mysql_stmt_bind_named_param()” 允许绑定预处理语句的未命名和命名参数。 

 

mysql_ssl_set() C API 函数已弃用,并且在未来的 MySQL 版本中删除。与其等效的函数为“mysql_options()” TLS 选项。

 

二、弃用和删除

 

兼容性的变化:“WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS()” SQL 函数,在 MySQL 8.0 中已弃用,现已被删除。用户可以使用“WAIT_FOR_EXECUTED_GTID_SET()”替代。 

 

复制:“binlog_transaction_dependency_tracking”服务器系统变量现已弃用,并将在 MySQL 的未来版本中删除。设置或检索该变量的值会触发警告。 

 

“expire_logs_days”服务器系统变量,在 MySQL 8.0 中已弃用,现已删除。用户可以使用“binlog_expire_logs_seconds”替代。

 

在 MySQL 8.0 中已弃用的服务器启动选项“--abort-slave-event-count”和“--disconnect-slave-event-count”,现已删除。 

 

服务器系统变量“old”和“new”现在已弃用,将在 MySQL 的未来版本中删除。 

 

“--character-set-client-handshake”服务器选项,现已弃用,并将在 MySQL 的未来版本中删除。 

 

使用字符 “%” 和 “_” 作为通配符,对数据库进行授权功能现已弃用,未来将删除通配符功能。另外,服务器将“%”视为“localhost”的同义词,检查权限时(即授予 'myuser'@'%' 的权限也予'myuser'@'localhost') 也从 MySQL 8.2.0开始被弃用,未来版本删除。 

 

“INFORMATION_SCHEMA.PROCESSLIST”已弃用,未来版本删除。因此,使用该表实现的“SHOW PROCESSLIST”也已弃用。推荐使用Performance_schema。 

 

SET_USER_ID 权限已弃用,未来版本删除。它现在已被这些新的权限替代: 

SET_ANY_DEFINER 用于创建定义者对象。 

ALLOW_NONEXISTENT_DEFINER 用于孤立对象 保护。 

 

“TLS_AES_128_CCM_8_SHA256”密码套件已弃用,未来版本删除。

 

三、防火墙

 

MySQL Enterprise Firewall 允许其内存缓存定期重新加载防火墙中存储的数据表。以往仅在服务器启动时或服务器端插件启动时重新加载缓存。新的“mysql_firewall_reload_interval_seconds”系统变量可以设置用于重新加载表数据的日程表。

 

MySQL Enterprise Firewall 以往仅能在mysql系统数据库中存储所需的表、函数和存储过程。新的 “mysql_firewall_database”服务器系统变量允许用户在服务器启动时,指定自定义的库。此外,新的脚本“uninstall_firewall.sql”简化了删除防火墙的工作。

 

四、SQL 语法

 

复制:此版本继续发布与MySQL 复制相关功能中使用的术语 。MySQL 8.2 弃用了一些SQL 语句,包括 “RESET MASTER”(使用 “RESET BINARY LOGS AND GTIDS” 代替),“SHOW MASTER STATUS”(“使用 SHOW BINARY LOG STATUS”),“SHOW MASTER LOGS”(使用 “SHOW BINARY LOGS”)和 “PURGE MASTER LOGS”(使用“BINARY LOGS”)。

此外,“DISABLE ON SLAVE” 选项在“CREATE EVENT” 和 “ALTER EVENT”上已弃用。相关变更包括以下内容: 

 

  •  mysqldump 添加了一个选项 “--output-as-version”定义转储中使用的术语级别对于与副本和事件相关的声明,使得创建转储成为可能与以前版本的 MySQL 兼容,仅接受现已弃用的术语。此选项的有效值为 “SERVER”、 “BEFORE_8_0_23” 和 “BEFORE_8_2_0” 。默认是 “SERVER”,这会令 “mysqldump” 获取服务器版本并输出命令与该版本兼容。 

  • “terminology_use_previous” 服务器系统变量添加了一个新值 “BEFORE_8_2_0”。

  • SLAVESIDE_DISABLED 现已弃用。 

  •  Com_show_master_status 系统状态变量重新命名为 “Com_show_binary_log_status”。以前的名称已弃用,但仍支持向后兼容性。 

 

EXPLAIN 现在支持 “FOR SCHEMA” 或 “FOR DATABASE” 选项。该选项将假设语句已经已在选项指定的数据库中运行。

 

五、添加或更改的功能 

 

非兼容更改:升级绑定的 libfido2 v1.13.0 库。该libfido2版本需要 OpenSSL 1.1.1 或更高版本。 

 

重要更改:适用于支持绑定 OpenSSL 的平台,用于MySQL服务器链接的OpenSSL 库已更新至版本3.0.10。 

 

重要更改:添加了对 Debian 12、Fedora 39、 macOS 14 和 Ubuntu 23.10的支持。 

 

mysqldump:添加了 “--ignore-views” 选项以跳过 生成的转储文件中的表视图。* mysqldump:添加了 “--init-command” 和 “--init-command-add” 选项以允许连接或重新连接MySQL后执行SQL语句。 

 

mysql:添加了 “--init-command-add” 选项,该选项添加连接或重新连接到 MySQL 服务器后要执行的附加 SQL 语句。它类似于“--init”命令选项。

 

添加了新的 “--no-login-paths” 命令行选项,禁止处理登录路径。已添加至每个具有 “--login-path” 选项的 MySQL 客户端。

 

以上内容是关于MySQL 8.2.0的简单介绍,详细内容请访问官网手册。

 

整理作者介绍

徐轶韬,MySQL解决方案首席工程师。为中国金融、政府、航空运输等行业的MySQL用户提供相关产品的售前咨询,企业级产品介绍服务以及推广和普及MySQL数据库在社区的使用。公众号“MySQL解决方案工程师”运营者和内容作者。

 

作者丨徐轶韬
来源丨公众号:MySQL解决方案工程师(ID:mysqlse)
dbaplus社群欢迎广大技术人员投稿,投稿邮箱:editor@dbaplus.cn
最新评论
访客 2024年04月08日

如果字段的最大可能长度超过255字节,那么长度值可能…

访客 2024年03月04日

只能说作者太用心了,优秀

访客 2024年02月23日

感谢详解

访客 2024年02月20日

一般干个7-8年(即30岁左右),能做到年入40w-50w;有…

访客 2023年08月20日

230721

活动预告