作者:IT邦德
中国DBA联盟(ACDU)成员,10余年DBA工作经验,
Oracle、PostgreSQL ACE
博客专家及B站知名UP主,全网粉丝10万+
擅长主流Oracle、MySQL、PG、
高斯及Greenplum备份恢复,
安装迁移,性能优化、故障应急处理

公众号:IT邦德
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.


文章目录
  • 前言
  • 1.重大bug
  • 2.修复版本
  • 3.版本升级的风险
  • 4.总结


前言

2024年7月1推出了最新的MySQL9.0.0创新版本,但是由于存在重大BUG,MySQL在7月23日重新发布了新版本.

1.重大bug

7/11日开源数据库软件服务商percona发布MySQL9.0.0重大BUG警告

MySQL9.0.0爆重大Bug!不要升级,不要升级..._版本升级

本次涉及的是3个版本如下
MySQL 8.0.38
MySQL 8.4.1
MySQL 9.0.0
  • 1.
  • 2.
  • 3.
  • 4.

简而言之,如果你创建了大量的表,比如10000个,mysql守护进程将在重启时崩溃。

DELIMITER //
 
CREATE PROCEDURE CreateTables()
BEGIN
  DECLARE i INT DEFAULT 1;
  WHILE i <= 10001 DO
    SET @tableName := CONCAT('mysql', i);
    SET @stmt := CONCAT('CREATE TABLE ', @tableName, ' (id INT PRIMARY KEY AUTO_INCREMENT, data VARCHAR(100));');
    PREPARE createTable FROM @stmt;
    EXECUTE createTable;
    DEALLOCATE PREPARE createTable;
    SET i := i + 1;
  END WHILE;
END //
 
DELIMITER ;
 
CALL CreateTables();
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.

于是我也在之前安装的环境做了下测试,确实存在当创建的表达到10000个后重启实例,就能看到实例启动失败。

MySQL9.0.0爆重大Bug!不要升级,不要升级..._版本升级_02

2.修复版本

目前三个存在Bug的版本已经无法下载了,以下是之前MySQL9.0.0的截图

MySQL9.0.0爆重大Bug!不要升级,不要升级..._版本升级_03

7 月 23 日之后
MySQL9.0.0和MySQL 8.4.1 和 MySQL 8.0.38 
这三个版本已经无法从历史归档中下载了

目前发布的新版本如下,测试发现确实修复了bug 
MySQL 9.0.1
MySQL 8.4.2
MySQL 8.0.39
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.

MySQL9.0.0爆重大Bug!不要升级,不要升级..._新版本_04

3.版本升级的风险

数据库版本升级是一项重要的维护工作,但同时也伴随着一定的风险,确保升级过程顺利进行,同时保证业务的连续性和数据的安全性至关重要。

4.总结

本来以为这次 MySQL9.0会有一些王炸的新特性,结果呢,本次除了修复了 100 多个 Bug 之外,几乎没啥对开发者有帮助的点,结果还出现了重大bug.