MySQL 8.2.0 GA 于2023年10月25日发行
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_logsseconds”替代。
在 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 用于孤立对象 保护。
- “terminology_use_previous” 服务器系统变量添加了一个新值 “BEFORE_8_2_0”。
- SLAVESIDE_DISABLED 现已弃用。
- Com_show_master_status 系统状态变量重新命名为 “Com_show_binary_log_status”。以前的名称已弃用,但仍支持向后兼容性。