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

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

微信:jem_db
QQ交流群:587159446
公众号:IT邦德

@TOC

前言

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

1.重大bug

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

本次涉及的是3个版本如下
MySQL 8.0.38
MySQL 8.4.1
MySQL 9.0.0

简而言之,如果你创建了大量的表,比如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();

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

2.修复版本

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


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

3.版本升级的风险

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

4.总结

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