号外!号外!MySQL 因重大 Bug 紧急发布新版本
本月初 MySQL 官方发布了第三季度的新版本,分别是MySQL 9.0 新的创新版本,以及 LTS 长周期版本 8.4.1 和 MySQL 8 系列的 MySQL8.0.38 版本。但是这个季度的这三个版本均存在一个致命的 Bug #36808732。
7 月 11 日开源数据库软件服务商 percona 发布重要警告,最新的 MySQL 版本存在重大Bug:
Do Not Upgrade to Any Version of MySQL After 8.0.37
上面是 percona 官网的一篇文章截图(原文:https://www.percona.com/blog/do-not-upgrade-to-any-version-of-mysql-after-8-0-37/)。简而言之,如果您创建了大量的表,比如 10000 个,MySQL 守护进程就会在重启时崩溃,该 Bug 在
MySQL 8.0.38
MySQL 8.4.1
MySQL 9.0.0
三个版本中被确认,这个问题在 >= 8.0.38 版本中存在,包括 8.4.1 和 9.0.0。
很多网友和大佬们出于好奇也进行了测试,当创建的表达到 10000 后重启实例,就能看到实例启动失败,实在是大跌眼镜。当然也有大佬给出了解决方案,使用共享/通用表空间,但是也不推荐。
-- 1. 使用共享表空间方案
> SET GLOBAL innodb_file_per_table = 0;
> CREATE TABLE test ...;
-- 2. 使用通用表空间方案
> CREATE TABLESPACE test ADD DATAFILE 'test.ibd';
> CREATE TABLE t_test1(...) TABLESPACE=test;