MySQL最新发布的MySQL8.4LTS,"LTS" 代表 "Long-Term Support"(长期支持),是软件行业常用的术语之一。在软件开发中,LTS 版本是指那些经过特别维护并提供长期支持的版本。通常,LTS 版本会获得更长时间的更新和安全补丁支持,以确保它们能够在较长的时间内保持稳定和可靠。
对于 MySQL 来说,发布 LTS 版本意味着这个版本将会得到更长时间的维护和支持,以满足用户的需求。MySQL 8.4 是 MySQL 的第一个 LTS 版本,意味着它将获得更长时间的更新和安全补丁支持,以及可能的修复和改进,为用户提供更稳定和可靠的数据库服务。LTS 版本的发布通常会吸引更多企业级用户,因为他们更倾向于使用长期支持版本来确保系统的稳定性和可靠性。
MySQL 本机密码身份验证更改
开启:
从 MySQL 8.4.0 开始,已弃用的身份验证,默认情况下,插件不再启用。要启用它,需要再启动时添加--mysql-native-password=ON,或在配置文件添加
[mysqld]
mysql_native_passwordmysql_native_password=ON
禁用:
再启动时不添加--mysql-native-password参数,或在配置文件添加
[mysqld]
mysql_native_passwordmysql_native_password=OFF
InnoDB 系统变量默认值更改
innodb_buffer_pool_in_core_file
MySQL 8.4
MySQL 8.0
OFF 如果支持, 否则MADV_DONTDUMPON
ON
innodb_buffer_pool_instances
MySQL 8.4
如果innodb_buffer_pool_size <= 1 GiB,则 innodb_buffer_pool_instances=1
如果innodb_buffer_pool_size > 1 GiB,则这是 以下两个计算的提示在 1-64 范围内:
缓冲池提示:按 1/2 计算 (innodb_buffer_pool_size / innodb_buffer_pool_chunk_size)
CPU 提示:按 1/4 的数目计算 可用的逻辑处理器
MySQL 8.0
8 个(如果innodb_buffer_pool_size则为 1 个< 1 GiB)
innodb_change_buffering
MySQL 8.4
MySQL 8.0
none 表示不缓存这些修改操作
all 表示innodb_change_buffering会缓存插入、删除标记操作和后台发生的物理删除操作。
innodb_dedicated_server
MySQL 8.4
MySQL 8.0
如果 [a],则 innodb_flush_method 的值为 不再像 MySQL 8.0 那样更改,而是计算 的 innodb_redo_log_capacity 从基于内存更改为基于 CPU。查看更多 信息,请参见第 17.8.12 节 “为专用 MySQL 服务器启用自动配置”。ON
OFF
innodb_adaptive_hash_index
MySQL 8.4
MySQL 8.0
OFF 控制是否启用自适应哈希索引
ON
innodb_doublewrite_files
MySQL 8.4
MySQL 8.0
2
innodb_buffer_pool_instances*2
innodb_doublewrite_pages
MySQL 8.4
MySQL 8.0
128
innodb_write_io_threads,这意味着一个 默认值为 4
innodb_flush_method
MySQL 8.4
MySQL 8.0
O_DIRECT如果支持,否则fsync
fsync
innodb_io_capacity
MySQL 8.4
MySQL 8.0
10000 限制 InnoDB 数据库实例对磁盘的 I/O 能力,现在一般都是SSD的磁盘
200
innodb_io_capacity_max
MySQL 8.4
MySQL 8.0
2 * innodb_io_capacity
2 * innodb_io_capacity,最小 默认值为 2000
innodb_log_buffer_size
MySQL 8.4
MySQL 8.0
67108864 (64 MiB)
16777216 (16 MiB)
innodb_numa_interleave
MySQL 8.4
MySQL 8.0
ON 控制 InnoDB 存储引擎在 NUMA 架构下的内存分配方式
OFF
innodb_page_cleaners
MySQL 8.4
MySQL 8.0
innodb_buffer_pool_instances
4
innodb_parallel_read_threads
MySQL 8.4
MySQL 8.0
可用的逻辑处理器 / 8,最小默认值为 4
4
innodb_purge_threads
MySQL 8.4
MySQL 8.0
如果可用的逻辑处理器为 <= 16,则为 1,否则为 4
4
innodb_read_io_threads
MySQL 8.4
MySQL 8.0
可用的逻辑处理器 / 2,最小默认值为 4
4
innodb_use_fdatasync
MySQL 8.4
MySQL 8.0
ON 控制了 InnoDB 存储引擎在提交事务时是否使用 fdatasync() 函数来确保数据持久化到磁盘上
OFF
temptable_max_ram
MySQL 8.4
MySQL 8.0
总内存的 3%,默认值在 1-4 GiB 范围内
1 GiB
temptable_max_mmap
MySQL 8.4
MySQL 8.0
0,表示OFF,用于控制 MySQL 临时表(Temporary Table)的内存映射操作的最大限制
1 GiB
temptable_use_mmap
MySQL 8.4
MySQL 8.0
OFF
ON
克隆插件
放宽了克隆插件版本控制要求,允许克隆 在同一系列中的不同点版本之间。
例如,克隆功能现在允许克隆 8.4.0 到 8.4.14,反之亦然。
MySQL 复制:标记 GTID
- GTID 是 MySQL 复制中用于标识全局唯一事务的一种机制,它可以跨多个服务器节点确保事务的唯一性和一致性。
- 在介绍中提到的新的 GTID 格式包含了 TAG,这是一个最多 8 个字符的字符串,用于在特定组中唯一标识事务。通过设置 gtid_next 系统变量的值,可以启用这种新的 GTID 格式。在新格式下,每个事务都会自动分配一个唯一的 TAG,这个 TAG 在事务提交时或在组复制中进行认证时被应用。
- GTID 的原始格式仍然保持不变,可以继续在不需要使用 GTID 的复制设置中使用。这个格式包含了 UUID 和 NUMBER
- SET @gtid_next=AUTOMATIC:TAGUUID:TAG:NUMBER 这个示例演示了如何使用新的 GTID 格式,其中 AUTOMATIC:TAGUUID:TAG:NUMBER 表示了新的 GTID 值
Mysqldump向后兼容
该版本为 mysqldump 添加了 --output-as-version 选项
此选项 允许您从 MySQL 8.2 或更高版本创建转储 与旧版本MySQL兼容; 它的值决定了 转储中使用的复制的兼容性:
- SERVER:获取 服务器并使用最新版本的复制 与该MySQL兼容的语句和变量名 版本。
- BEFORE_8_2_0:输出兼容 使用运行版本 8.0.23 至 8.1.0(含)。
- BEFORE_8_0_23:输出兼容 MySQL 服务器运行 8.0.23 之前的版本。
组复制
group_replication_set_as_primary
选举新主节点前,会等待正在进行的 DDL 语句完成。
group_replication_consistency
系统变量的默认值在 MySQL 8.4.0 中已更改为 EVENTUAL。在此之前,默认值是 BEFORE_ON_PRIMARY_FAILOVER。这个变量用于配置组复制的一致性保证级别,决定了在什么情况下事务在组中的副本之间达到一致性。更改后的默认值表示事务在组内的复制延迟可能导致一致性差异,但是在某些情况下可以提高性能。
group_replication_exit_state_action
系统变量的默认值在 MySQL 8.4.0 中已更改为 READ_ONLY。在此之前,默认值是 OFFLINE_MODE。这个变量用于配置组复制节点在退出组时的行为。更改后的默认值表示节点在退出组时会被设置为只读模式,以避免数据的写入操作。
FLUSH_PRIVILEGES特权
MySQL 8.4.0 中添加了一个新权限,专门用于 允许使用 FLUSH PRIVILEGES 语句。与 RELOAD 权限不同,FLUSH_PRIVILEGES 权限 仅适用于语句。FLUSH PRIVILEGES
OPTIMIZE_LOCAL_TABLE特权
MySQL 8.4.0 添加了新的OPTIMIZE_LOCAL_TABLE权限。用户必须具有此权限才能执行 OPTIMIZE 本地表和优化 NO_WRITE_TO_BINLOG TABLE 语句
加入数据库技术交流群:
进群福利:
1、知识共享与学习机会
2、问题求助与解决支持
3、技术沉淀和分享平台
4、及时了解行业动态
版权归原作者 DBA实战 所有, 如有侵权,请联系我们删除。