MySQL 的最新版本 8.0.29 于 2022 年 4 月 26 日正式发行(GA)。MySQL8.0 发布至今已经历 4 年(2018 年 4 月 19 日 GA),已经进入了标准生命周期的末期,如果你还在继续使用 MySQL 5.7 版本,甚至是 5.6 版本,现在应该认真考虑未来的数据库安全问题。
MySQL 8.0.29 是一个维护版本,在这个版本里面做了大量的缺陷修复以及少数的改进,让我们快速浏览一下。
缺陷修复
MySQL8.0.29修复了160个缺陷与错误,特别感谢Yuhui Wang和中国移动的Bin Wang,他们为MySQL贡献了两处修复代码。欢迎广大爱好者持续为MySQL提交错误报告和缺陷修复。
功能改进
MySQL8.0.29中做了少量的功能改进,包括未来版本中将使用的基础功能及将弃用的功能。用户需要注意如下内容:
字符串:服务器在使用“SHOW”语句输出、及报告无需字符时,使用utf8mb3代替之前使用的utf8。此外,服务器使用utf8mb3代替utf8用于填充数据字典表的字符集名称,将影响字符集和相关信息的显示。
时间格式:MySQL之前对时间格式的分隔符或空白等要求宽松,从此版本开始,推荐用户使用标准格式,使用其他格式将输出警告信息。例如,
mysql> SELECT DATE"2020/02/20";
+------------------+
| DATE"2020/02/20" |
+------------------+
| 2020-02-20|
+------------------+
1 row in set, 1 warning (0.00 sec)
mysql> SHOW WARNINGSG
*************************** 1. row ***************************
Level: Warning
Code: 4095
Message: Delimiter '/' in position 4 in datetime value '2020/02/20' at
row 1 is
deprecated. Prefer the standard '-'.
1 row in set (0.00 sec)
复制相关:系统变量“replica_parallel_type”降级,该变量将不再使用,MySQL默认开启并行复制。引入新变量“binlog_expire_logs_auto_purge”用于控制日志清理。“group_replication_set_as_primary ”函数,可以指定新的主要成员,用于覆盖自动选举过程产生的主要成员。
InnoDB:支持使用ALGORITHM=INSTANT,执行ALTER TABLE ... DROP COLUMN语句,在线删除列。
克隆:增加系统变量“clone_delay_after_data_drop”,允许在接收者删除数据之后增加延时,以使接收者在开始克隆之前释放足够的空间。