有关升级、降级、平台支持等的一般信息,请访问https://dev.10bet靠谱mysql.com/doc/relnotes/mysql/8.0/en/.
这是一个里程碑版本,使用风险自负。不支持里程碑版本之间(或从里程碑版本到GA版本)的升级。重要的开发更改发生在里程碑版本中,您可能会遇到兼容性问题,例如除了通常的运行过程外还需要注意的数据格式更改mysql_upgrade.例如,您可能发现有必要将数据转储到, mysqldump在升级之前重新加载它。(在任何情况下,升级前进行备份都是一种谨慎的预防措施。)
这个版本在Unicode字符集支持方面做了一些重要的更改。特别是,默认字符集已经从latin1
来utf8mb4
.
不兼容的更改:组件和插件现在可以动态地(在运行时)定义特权,这使它们能够创建与它们实现的功能相关联的特权。
动态特权的实现使dba能够开始从
超级
特权。在过去,超级
已经与各种各样的行动联系在一起,但并不都是相互关联的。由超级
现在,它们还与范围更有限的动态特权相关联,该特权由实现操作的组件或插件注册。以前需要的每一个这样的操作超级
可以通过授予关联的动态特权而不是超级
.例如,可以授予一个必须能够修改全局系统变量的用户SYSTEM_VARIABLES_ADMIN
而不是超级
.此更改通过允许dba避免授予来提高安全性
超级
并根据允许的操作更紧密地调整用户权限。超级
现在已弃用,并将在未来的MySQL版本中删除。动态特权只应用于全局级别。服务器存储有关动态权限当前分配给用户帐户的信息
mysql.global_grants
,一个新的表在mysql
系统数据库。有关更多信息,请参见静态与动态特权.该讨论包括迁移帐户的指令
超级
动态权限。不相容:
秀奖助金
不再显示所有权限
的全局特权输出所有权限
在全局级别上,根据定义的动态特权而有所不同。相反,秀奖助金
显式列出每个授予的全局特权。有关详细信息,请参见显示资助声明.应用程序的过程秀奖助金
产量应相应调整。如果您从较早的版本升级到这个MySQL版本,您必须运行mysql_upgrade(并重新启动服务器)将这些更改合并到
mysql
系统数据库。
实现的C API
libmysqlclient
现在包含了一个客户端接口,用于从MySQL服务器二进制日志读取复制事件流。有关更多信息,请参见C API二进制日志接口
重要的变化:默认字符集已从
latin1
来utf8mb4
.受影响的系统变量有:的默认值
character_set_server
而且character_set_database
系统变量从latin1
来utf8mb4
.的默认值
collation_server
而且collation_database
系统变量从latin1_swedish_ci
来utf8mb4_0900_ai_ci
.
因此,新对象的默认字符集和排序规则与以前不同,除非明确指定字符集和排序规则。这包括数据库和其中的对象,如表、视图和存储程序。保存以前默认值的一种方法是在
my.cnf
文件:(mysqld) character_set_server = latin1 collation_server = latin1_swedish_ci中的一个
基于UCA 9.0.0的排序规则的性能(例如,
utf8mb4_0900_ai_ci
)是改善。这些整理现在比任何其他UCA整理都要快。此外,
max_length_for_sort_data
系统变量默认值从1024增加到4096。(Bug #24823885, Bug #83319)的默认排序规则
utf8mb4
字符集已经从utf8mb4_general_ci
来utf8mb4_0900_ai_ci
;utf8mb4_general_ci
不能正确处理基本多语言平面(BMP)以外的字符。(错误# 24742157)Unicode 9.0.0排序规则的pad属性已从
垫的空间
来没有垫
.因此,这些排序规则现在将字符串末尾的空格视为有意义的,就像任何其他字符一样。受影响的排序规则具有包含该字符串的名称_0900_
.非二进制字符串的比较(
字符
,VARCHAR
,文本
字符串)具有9.0.0 (没有垫
)整理不同于垫的空间
对尾随空格的排序。例如,“一个”
而且“一个”
比较不同的字符串,而不是相同的字符串。例子:mysql> SET NAMES 'latin1' COLLATE 'latin1_swedish_ci';mysql> SELECT 'a' = 'a';+------------+ | ' “=” ' | +------------+ | 1 | +------------+ mysql >设置名称“utf8mb4”核对“utf8mb4_0900_ai_ci”;mysql> SELECT 'a' = 'a';+------------+ | ' “=” ' | +------------+ | 0 | +------------+
另请参阅比较中的尾随空间处理.
的
INFORMATION_SCHEMA
整理
表现在有一个PAD_ATTRIBUTE
列,指示每个排序规则的pad属性。有一个问题
latin1_de
涉及早期权值字符串截断的整理已被纠正。唯一可能的结果是WEIGHT_STRING ()
函数的结果。作为对MySQL 8.0.0中早期工作的补充,为
utf8mb4
添加了Unicode字符集、新的区分大小写和区分重音的排序规则。一般排序规则被命名utf8mb4_0900_as_cs
,有一些特定于语言的排序,其特征类似于utf8mb4_0900_as_cs
除非特定于语言的规则在适用的情况下优先。特定于语言的排序规则在排序规则名称中由ISO 639-1语言代码表示,如下表所示。在两种情况下,语言代码有一个表示变体的附加项(德语电话簿顺序,传统西班牙语)。请注意utf8mb4_ja_0900_as_cs
是MySQL中第一个针对Unicode的日语特定排序规则。表2 utf8mb4 UCA 9.0.0特定于语言的排序规则
语言 排序 克罗地亚 utf8mb4_hr_0900_as_cs
捷克 utf8mb4_cs_0900_as_cs
丹麦 utf8mb4_da_0900_as_cs
世界语 utf8mb4_eo_0900_as_cs
爱沙尼亚 utf8mb4_et_0900_as_cs
德国电话簿订单 utf8mb4_de_pb_0900_as_cs
匈牙利 utf8mb4_hu_0900_as_cs
冰岛 utf8mb4_is_0900_as_cs
日本 utf8mb4_ja_0900_as_cs
拉脱维亚 utf8mb4_lv_0900_as_cs
立陶宛 utf8mb4_lt_0900_as_cs
波兰的 utf8mb4_pl_0900_as_cs
古典拉丁语 utf8mb4_la_0900_as_cs
罗马尼亚 utf8mb4_ro_0900_as_cs
斯洛伐克语 utf8mb4_sk_0900_as_cs
斯洛维尼亚语 utf8mb4_sl_0900_as_cs
现代西班牙语 utf8mb4_es_0900_as_cs
传统的西班牙 utf8mb4_es_trad_0900_as_cs
瑞典 utf8mb4_sv_0900_as_cs
土耳其 utf8mb4_tr_0900_as_cs
越南 utf8mb4_vi_0900_as_cs
utf8mb4_0900_as_cs
还可作为下表中语言的重音敏感、大小写敏感的排序规则。表3 utf8mb4_0900_as_cs适用的语言
语言的名字 语言代码 德国(字典顺序) 德 英语 在 法语(地区fr_FR) fr 爱尔兰盖尔语 遗传算法 印尼 id 意大利 它 卢森堡 磅 马来语 女士 荷兰 问 葡萄牙语 pt 斯瓦希里语 西南 祖鲁语 祖茂堂 utf8mb4_0900_as_cs
适合法语(地区fr_FR
),但对加拿大法语(地区fr_CA
).加拿大法语,utf8mb4_0900_ai_ci
是合适的。差异的原因ai_ci
而且as_cs
加拿大法语和法国法语的重音字符顺序不同。utf8mb4_da_0900_as_cs
还可作为下表中语言的重音敏感、大小写敏感的排序规则。的nonlanguage-specific
utf8mb4_0900_as_cs
和特定于语言的utf8mb4_
每个Unicode排序规则都有以下特征:朗
_0900_as_cs该排序基于Unicode排序算法(UCA) 9.0.0和公共区域数据存储库(CLDR) v30,区分重音和大小写。这些特征表示为
_0900
,_as
,_cs
在排序规则名称中。例外:utf8mb4_la_0900_as_cs
不是基于CLDR,因为CLDR中没有定义古典拉丁语。该排序方法适用于范围[U+0, U+10FFFF]中的所有字符。
如果排序规则不是特定于语言的,它将按默认顺序(如下所述)对所有字符(包括补充字符)进行排序。如果排序规则是特定于语言的,那么它将根据特定于语言的规则对语言的字符进行正确排序,并按照默认顺序对不属于该语言的字符进行排序。
默认情况下,排序规则根据表中分配的权重值对在DUCET表(默认Unicode排序规则元素表)中列出代码点的字符进行排序。排序规则使用隐式权重值对DUCET表中没有列出代码点的字符进行排序,隐式权重值是根据UCA构造的。
排序规则对所有三个DUCET权重级别进行排序,包括第三级。这与重音不敏感、大小写不敏感的排序规则相比较,后者只在主要和次要级别上排序。
对于非特定于语言的排序,缩写序列中的字符被视为单独的字符。对于特定于语言的排序,缩写可能会改变字符排序顺序。
有关更多信息,请参见Unicode字符集.
不兼容的更改:的
my_bool
MySQL源代码中不再使用type。任何使用此类型表示C布尔变量的第三方代码都应该使用保龄球
或int
C类型。请注意的变化
my_bool
来保龄球
意味着mysql.h
头文件现在需要c++或C99编译器来编译。(错误# 25597667)
InnoDB:日志含义LOB页面删除功能删除LOB页面失败。(错误# 24480254)
Windows构建现在使用默认的运行时库(构建使用
/ MD
国旗)。(错误# 25611609)CMake
添加了对Developer Studio 12.6编译的支持。(错误# 25384295)MySQL发行版中包含的rapidjson库已升级到1.1.0版本。(Bug #24947436, Bug #83515)
用于服务器构建的Boost库的最低版本现在是1.63.0。(Bug #24579061, Bug #82834, Bug #25126144, Bug #83905)
对于高于4.4的GCC版本,
-fno-expensive-optimizations
被替换为-ffp-contract =了
,这具有启用更多优化的效果。感谢Alexey Kopytov的补丁。(Bug #24571672, Bug #82760)对于构建MySQL 8.0,所需的最低版本是CMake现在Windows上的版本是3.2.3,Solaris上是3.4.0,其他版本是2.8.12。(Bug #24481181, Bug #82628)
参考文献:参见Bug #24687701。
清理源代码库的工作已经完成,包括:删除不需要的CMake检查;从源文件中删除未使用的宏;重新组织头文件以减少依赖的数量并使它们更加模块化,删除没有定义的函数声明,用行业标准库中的等价函数替换本地编写的函数。
在源代码发行版中,先前在
额外的
目录已移到新的位置公用事业公司
目录中。(错误# 25416084)两个新CMake选项可用于调试。
LINK_RANDOMIZE
控件中符号的顺序是否随机化mysqld二进制文件(默认从
),LINK_RANDOMIZE_SEED
的种子值LINK_RANDOMIZE
.(错误# 25336715)MySQL编译失败
-DENABLE_DEBUG_SYNC =了
和-DWITH_DEBUG =对
都是给定的。的ENABLE_DEBUG_SYNC
选项已被删除并启用WITH_DEBUG
使调试同步。(错误# 18374703)这些更改是关于持久化系统变量的:
一个新的声明,
重置持续
,允许删除已持久化的变量设置设置保存
到mysqld-auto.cnf
存储持久的全局系统变量设置的文件。使用
设置保存
(或@@PERSIST。
)设置一个全局变量为默认的
或给变量文字默认值之前还添加了一个为变量设置的mysqld-auto.cnf
文件(如果不存在则删除)mysqld-auto.cnf
如果它存在的话。赋值操作总是为变量添加一个设置mysqld-auto.cnf
文件;若要从文件中删除设置,请使用重置持续
.一个新的性能架构表,
persisted_variables
的SQL接口mysqld-auto.cnf
文件,使文件内容可以在运行时使用选择
语句。性能模式
variables_info
表有新的列,显示每个系统变量是何时以及由哪个用户最近设置的。
如果您从较早的版本升级到这个MySQL版本,您必须运行mysql_upgrade(并重新启动服务器)将这些更改合并到性能架构中。
参考文献:参见Bug #24522064。
的默认值
query_cache_size
系统变量由1M减少为0。因此,默认情况下不分配查询缓存缓冲区。
MySQL服务器现在包含一个插件库,允许管理员在连续连接失败一定次数后,增加服务器对客户端的响应延迟。该功能提供了一种威慑,可以减缓试图访问MySQL用户帐户的暴力攻击。有关更多信息,请参见连接控制插件.
sql层代码和存储引擎API进行了扩展,以提供数据字典支持:
存储有关辅助列和键的信息
InnoDB
隐式地向表中添加表和表空间的存储引擎私有数据和对象标识符InnoDB
全文搜索辅助表和其他类似的,隐式创建的对象。将DDL操作的数据字典更新、存储引擎更改和二进制日志写入原子事务。
行为的改变
删除表
如果任何命名表不存在,则发生。在此之前,该语句返回一个错误,指示哪些表不存在且无法删除,但也删除了确实存在的表。现在,该语句仍然指示哪些表不存在,但是失败了,出现错误,没有进行任何更改。有关更多信息,请参见原子数据定义语句支持,王# 7743.
这些
INFORMATION_SCHEMA
表被重新实现为数据字典表的视图:事件参数例程触发器
对这些表的查询现在效率更高,因为它们从数据字典表获得信息,而不是通过其他较慢的方法。例如,服务器不再必须为的每个查询创建临时表
INFORMATION_SCHEMA
表格对这些表的改进也适用于
显示
类对应的信息INFORMATION_SCHEMA
表。例如,显示触发
控件显示相同的信息触发器
表格如果您从较早的版本升级到这个MySQL版本,您必须运行mysql_upgrade(并重新启动服务器)来合并这些更改。
不兼容的更改;InnoDB;分区:的
ALTER TABLE……升级分区
语句不再受支持。弃用的
过程分析()
语法已被删除。弃用的
libmysqld
嵌入式服务器库已被删除,以及:的mysql_config
——libmysqld-libs
,——embedded-libs
,——嵌入式
选项的CMake
WITH_EMBEDDED_SERVER
,WITH_EMBEDDED_SHARED_LIBRARY
,INSTALL_SECURE_FILE_PRIV_EMBEDDEDDIR
选项(无证)mysql
——server-arg
选项的mysqltest
——嵌入式服务器
,——server-arg
,——服务器文件
选项的mysqltest_embedded而且mysql_client_test_embedded测试程序
弃用的
——temp-pool
服务器选项已被删除。对DTrace的支持已被移除。
InnoDB:MySQL现在支持降序索引:
DESC
在索引中,定义不再被忽略,而是导致按降序存储键值。以前,可以反向扫描索引,但会造成性能损失。降序索引可以按正向顺序扫描,这样效率更高。降序索引还使优化器可以使用多列索引,当最有效的扫描顺序混合了某些列的升序和其他列的降序时。有关更多信息,请参见降序索引.请注意在此之前,
集团
默认的隐式排序(也就是说,在没有。ASC
或DESC
指示器的集团
列),但依赖于隐式集团
排序是弃用。集团
不再默认排序,因此查询结果可能与以前的MySQL版本不同。要生成给定的排序顺序,请使用explicitASC
或DESC
指示器的集团
列或提供命令
条款。优化器跟踪输出现在包含关于
filesort
操作,例如键和有效载荷大小以及为什么插件字段没有打包。(Bug #25246184, Bug #84180)以前,只支持不可见索引
InnoDB
存储引擎。不可见索引现在是存储引擎中立的(支持任何引擎)。(错误# 23541244)一个
分组()
函数已引入用于集团
包含与汇总
修饰符。这个功能使您能够区分零
的查询结果中的超级聚合行的值零
规则分组行的值。有关更多信息,请参见各种各样的功能,通过修饰符.感谢喆东的补丁,部分用于实现这个功能。请注意分组
Now是一个保留字,不引用标识符就不能用作标识符。(Bug #11754449, Bug #46053, Bug #11745963, Bug #21728)
优化器现在支持
INDEX_MERGE
而且NO_INDEX_MERGE
提示影响索引合并访问方法的使用。例子:SELECT /*+ INDEX_MERGE(t1 f1, f2, f3) */ f2 FROM t1 WHERE f1 = 'o' AND f2 = f3 AND f3 <= 4;SELECT /*+ NO_INDEX_MERGE(t1 f2, f3) */ f1 FROM t1 WHERE (f2 = 5 OR f3 = 'c') AND (f1 = 4 OR f4 = 'f');
的
server_cost
而且engine_cost
中的优化器成本模型表mysql
系统数据库现在包含一个default_value
列,其中包含每个成本表估算的默认值。此列是只读生成的列,即使更改了相关的成本估算,它也会保留其值。有关更多信息,请参见优化器成本模型.如果您从较早的版本升级到这个MySQL版本,您必须运行mysql_upgrade(并重新启动服务器)将这些更改合并到
mysql
系统数据库。在优化器成本模型中
engine_cost
表中,内存访问成本相对于磁盘访问成本降低了。此更改的一个含义是,执行计划可能在同一查询的两次运行之间更改。例如,在服务器启动时,在数据被读入缓冲池之前,您可能会得到与查询运行后不同的计划,因为那时数据将在内存中。MySQL现在支持公共表表达式,包括非递归表达式和递归表达式。公共表表达式允许使用命名的临时结果集
与
条款前选择
语句和某些其他语句。有关更多信息,请参见WITH(常用表表达式).请注意递归
Now是一个保留字,不引用标识符就不能用作标识符。优化器现在支持指定联接表的顺序的提示。有关更多信息,请参见优化器提示.
微软的Windows操作系统:提示:MySQL 8.0需要Microsoft Visual c++ 2015 Redistributable Package才能在Windows平台上运行。在启动服务器之前,用户应该确保已经在系统上安装了软件包。你可以在微软下载中心.
RPM包结构的变化需要删除更大的一组包才能干净地安装MySQL Server。(错误# 25603087)
为了避免潜在的竞争条件,Debian包现在使用GNU安装而不是效用的组合mkdir,触摸,乔恩.(错误# 25258829)
新的Debian/Ubuntu包命名为
server核心
而且client-core
现在可用。这些包只包含二进制文件,不包含配置或服务脚本、目录设置、手册页等。它们与标准包一起自动安装,但单独安装时不会导致MySQL设置正常运行。对于希望自定义自己的安装设置的用户,他们可能会感兴趣。(错误# 25146364)脚本/ mysql_security_commands.sql
而且支持文件/ mysql.server-sys5.sh
不再使用,并且已从MySQL发行版中删除。(Bug #24756400, Bug #24756442)RPM包现在是用
-DWITH_NUMA =对
对于支持NUMA的平台:高于EL5的OEL, Fedora, SLES, Docker。(错误# 24689078)的
my-default.cnf.sh
文件(用于生成默认的my-default.cnf
或my-default.ini
文件)不再包含在源发行版和my-default.cnf
而且my-default.ini
不再包含在分发包中或由分发包安装。(错误# 22525354)未使用的和未记录的archive_reader而且archive_test实用程序已经从MySQL源代码发行版中删除。(Bug #12818207, Bug #62014)
性能模式维护语句事件汇总表,其中包含关于最小、最大和平均语句延迟的信息。这些表允许对系统性能进行高级评估。为了允许在更细粒度的级别上进行评估,Performance Schema现在还收集语句延迟的直方图数据。这些直方图提供了对延迟分布的额外洞察,如下表所示:
events_statements_histogram_by_digest
:每个模式和摘要值的语句直方图events_statements_histogram_global
:全局总结的语句直方图
有关更多信息,请参见语句直方图汇总表.
此外,
events_statements_summary_by_digest
表现在有提供关于语句延迟百分比信息的列。有关更多信息,请参见声明汇总表.如果您从较早的版本升级到这个MySQL版本,您必须运行mysql_upgrade(并重新启动服务器)将这些更改合并到性能架构中。
中不再维护系统和状态变量信息
INFORMATION_SCHEMA
.以下表格已被删除:GLOBAL_VARIABLES
,SESSION_VARIABLES
,GLOBAL_STATUS
,SESSION_STATUS
.请使用相应的Performance Schema表。看到性能架构系统变量表,性能模式状态变量表.此外,show_compatibility_56
系统变量已被删除。它应用于系统和状态变量信息的过渡时期INFORMATION_SCHEMA
表已移动到性能模式表,不再需要。这些状态变量已被删除:Slave_heartbeat_period
,Slave_last_heartbeat
,Slave_received_heartbeats
,Slave_retried_transactions
,Slave_running
.他们提供的信息可在性能模式表中获得;看到迁移到性能模式系统和状态变量表.弃用的
INFORMATION_SCHEMA
INNODB_LOCKS
而且INNODB_LOCK_WAITS
桌子被移走了。获得InnoDB
数据锁信息,使用性能架构data_locks
而且data_lock_waits
表。另外,使用sys
模式innodb_lock_waits
而且x美元innodb_lock_waits
视图,它们已经重新实现,以使用新的Performance Schema表,而不是删除的表INFORMATION_SCHEMA
表。Performance Schema表公开了存在哪些数据锁、哪个事务持有每个锁以及哪些事务锁请求被其他锁阻塞。为
InnoDB
,data_locks
表报告所有数据锁,而INNODB_LOCKS
有关更多信息,请参见data_locks表,data_lock_waits表.有关将旧表列映射到新表列的信息,请参见INNODB_LOCKS表,innodb_lock_waiting表.这些表所需的特权不同
INFORMATION_SCHEMA
表需要全局的过程
特权。的性能模式表需要通常的性能模式特权选择
在要选择的桌子上。的
sys
模式innodb_lock_waits
而且x美元innodb_lock_waits
视图可以在不更改的情况下使用locked_table
包含组合模式/表名值的列已被删除,并替换为locked_table_schema
而且locked_table_name
包含独立模式和表名值的列。此外,这些视图现在包含locked_table_partition
而且locked_table_subpartition
列。有关更多信息,请参见innodb_lock_waiting和x$ innodb_lock_waiting视图,如果您从较早的版本升级到这个MySQL版本,您必须运行mysql_upgrade(并重新启动服务器)将这些更改合并到性能架构和
sys
模式。
MySQL Server 8.0包括一个基于组件的基础设施,以提高服务器的可扩展性;看到MySQL组件.然而,MySQL插件使用的接口早于组件接口。一个新的插件服务,
plugin_registry_service
,允许插件访问组件注册表及其服务。
不兼容的更改:为
独立的
而且赢得
构建,默认secure_file_priv
值已从空字符串更改为零
.这是一个默认安全设置,因为它禁用导入和导出操作。要允许这些操作,请设置secure_file_priv
到用于这些操作的目录的路径名。(Bug #24679907, Bug #24695274, Bug #24707666)不兼容的更改:这些改变是为了mysqld_safe:
不安全的使用rm而且乔恩在mysqld_safe可能导致权限升级。乔恩现在只能在目标目录为
/var/log
.不兼容的更改是,如果Unix套接字文件的目录丢失,则不再创建该目录;相反,会发生错误。由于这些变化,/bin/bash需要运行mysqld_safe在Solaris。/bin/sh仍在其他Unix/Linux平台上使用。的
——ledir
选项现在只在命令行上被接受,而不在选项文件中。mysqld_safe忽略当前工作目录。
其他相关的变化:
调用的初始化脚本mysqld_safe通过
——basedir
明确。初始化脚本仅在基目录为的情况下创建错误日志文件
/var/log
或/var/lib
.删除了SLES中未使用的systemd文件。
(Bug #24483092, Bug #25088048, Bug #25378439, Bug #25378565)
参考文献:参见Bug #24464380, Bug #24388753, Bug #24619033, Bug #82920。
yaSSL升级到2.4.2版本。此升级纠正了以下问题:潜在的AES侧通道泄漏;特殊尺寸的DSA填充;的
SSL_CTX_load_verify_locations ()
OpenSSL兼容功能无法处理长路径目录名。(Bug #24512715, Bug #24740291)OpenSSL将于2016年12月结束对1.0.1版本的支持;看到https://www.openssl.org/policies/releasestrat.html.因此,MySQL商用服务器版本现在使用1.0.2版本而不是1.0.1版本,MySQL商用服务器的链接OpenSSL库已经从1.0.1版本更新到1.0.2j版本。有关此版本中修复的问题的描述,请参见https://www.openssl.org/news/vulnerabilities.html.
此更改不影响oracle生产的MySQL服务器的MySQL社区构建,它使用的是yaSSL库。
不兼容的更改:在此之前,
ST_Distance ()
只支持笛卡尔空间参考系统(SRSs)。ST_Distance ()
现在检测地理SRS中的几何参数,并以米为单位返回椭球上的大地距离。唯一允许的地理参数类型是点
而且点
,或点
而且多点
(以任何论点顺序)。预测SRSs和SRID 0的计算保持不变。有关更多信息,请参见使用对象形状的空间关系函数.请注意如果空间数据包含引用地理空间参考系统的SRID值,与以前的MySQL版本相比,使用这些函数的现有查询将返回不同的结果。
不兼容的更改:这些函数以前接受WKB字符串或几何参数。不再允许几何参数并产生错误。
有关将引用这些函数的查询从使用几何参数迁移到使用WKB参数的信息,请参见从WKB值创建几何值的函数.
不兼容的更改:这些函数现在按照空间参考系统指定的顺序解释纬度和经度坐标。函数还接受一个可选参数来覆盖默认的轴顺序。
有关更多信息,请参见从WKT值创建几何值的函数,从WKB值创建几何值的函数.
请注意如果空间数据包含引用地理空间参考系统的SRID值,与以前的MySQL版本相比,使用这些函数的现有查询将返回不同的结果。
不兼容的更改:这些函数现在按应用于几何值参数的空间参考系统指定的顺序返回经纬度坐标。函数还接受一个可选参数来覆盖默认的轴顺序。
有关更多信息,请参见几何格式转换函数.
请注意如果空间数据包含引用地理空间参考系统的SRID值,与以前的MySQL版本相比,使用这些函数的现有查询将返回不同的结果。
的
st_spatial_reference_systems
存储除SRID 0以外的空间参考系统信息的数据字典表已从EPSG Dataset 8.7升级到9.0。此外,表内容现在通过INFORMATION_SCHEMA
ST_SPATIAL_REFERENCE_SYSTEMS
有关更多信息,请参见信息模式空间引用系统表.MySQL现在有一个
INFORMATION_SCHEMA
ST_GEOMETRY_COLUMNS
表,提供关于存储空间数据的表列的信息。新表被实现为现有表的视图INFORMATION_SCHEMA
列
表格有关更多信息,请参见信息模式ST_GEOMETRY_COLUMNS表.如果您从较早的版本升级到这个MySQL版本,您必须运行mysql_upgrade(并重新启动服务器)来合并这些
INFORMATION_SCHEMA
的变化。(Bug #25337054, Bug #84384)一个新的空间功能,
ST_SwapXY ()
,接受一个几何参数并交换几何中每个坐标对的X和Y值。有关更多信息,请参见几何格式转换函数.
派生表语法现在允许在表名后面使用显式列名列表,以覆盖从选择列表获取的默认列名。例如,这个派生表的列名来自它的选择列表:
mysql> SELECT * FROM (SELECT 1,2,3,4) AS dt;+---+---+---+---+ | 1 | 2 | 3 | 4 | +---+---+---+---+ | 1 | 2 | 3 | 4 | +---+---+---+---+
要提供列名,请在派生表名后面加上用括号括起来的列名列表:
mysql> SELECT * FROM (SELECT 1,2,3,4) AS dt (a, b, c, d);+---+---+---+---+ | c a | | | d | +---+---+---+---+ | 1 | 2 | 3 | 4 | +---+---+---+---+
mysql-test-run.pl现在有一个
——charset-for-testdb =
选项的默认字符集charset_name
测验
数据库。默认值为latin1
.(Bug #25494068, Bug #84806)mysql-test-run.pl现在有一个
——only-big-tests
选项,该选项将只导致运行大型测试。跳过常规(非大型)测试。如果两个——大考验
而且——only-big-tests
给出了,——only-big-tests
将被忽略。(错误# 25182306)mysql-test-run.pl有一个新的
——发现
选择。当给定的,mysql-test-run.pl尝试预加载发现
,即启动时的Developer Studio内存错误发现工具mysqld.报告发现
可在日志/ mysqld. % p.txt
在给定的目录下——vardir
.该选项仅在SPARC-M7系统上支持。(错误# 25048971)mysqltest现在支持一个
expr
命令,允许对表达式求值并赋值给变量。详细信息请参见MySQL Server Doxygen文档中的命令描述10bet官方网站https://dev.10bet靠谱mysql.com/doc/index-other.html.(错误# 24806741)mysqltest现在支持一个
force-cpdir
递归地将源目录复制到目标目录(即复制子目录)的命令。(错误# 24806681)mysql-test-run.pl有一个新的
——总结报告
选择。当给定的,mysql-test-run.pl只生成测试摘要的纯文本版本,并将其写入命名为option参数的文件。该文件适合通过电子邮件发送。(Bug #24512357, Bug #82708)mysql-test-run.pl无法使用——valgrind-option=——tool=custom_tool来运行
custom_tool
如地块或helgrind,因为它添加了选项memcheck这可能是其他工具无法理解的。此外,mysql-test-run.pl——callgrind
选项无法工作,因为它提供了无效的——基础
选项callgrind.感谢Daniel Black的补丁,补丁是修复的基础。(Bug #23713613, Bug #82039)的mysqltest
connect ()
现在允许函数套接字
而且TCP
的值选项
参数指定使用套接字文件和TCP/IP连接协议。此外,传输协议现在必须与当前系统匹配。以前,通过
管
或单孔位微吹气扰动
在非windows系统上导致使用默认的(套接字文件)传输协议。现在,这会导致一个错误,和类似的传递套接字
在Windows系统上产生错误。(错误# 21046241)mysql-test-run.pl现在支持一个
——引导
选项,使mysqld选项指定为引导选项。当mysql-test-run.pl
发现——引导
选择在一个master.opt
文件,它删除并重新初始化数据目录,并使用新的选项设置重新启动服务器。(错误# 18184868)
的
MYSQLX_TCP_PORT
CMake选择是忽略。(Bug #25493867, Bug #84804)触发protobuf编译器”未使用的导入”mysqlx.proto警告。(Bug #25444009, Bug #84641)
在进行验证时释放未初始化的连接。(错误# 25392280)
的
Mysqlx_notice_warning_sent
而且Mysqlx_notice_other_sent
状态变量值没有按预期增加。(Bug #25289949, Bug #84258, Bug #25290001, Bug #84260)的手动定义
MYSQL_DYNAMIC_PLUGIN
宏是多余的。(Bug #25162590, Bug #83988)IPv6连通性支持定义了一个新的系统变量
mysqlx_bind_address
默认值是'0.0.0.0',但是默认值应该是'*',这样连接到X Plugin可以使用IPv6地址、IPv4地址或主机名。(Bug #25047909, Bug #83688)的
支撑
Field被标记为要求
的信息:message Mysqlx.Crud.ModifyView {required Collection Collection = 1;可选string definer = 2;可选viewalgalgorithm算法= 3;ViewSqlSecurity security = 4;可选ViewCheckOption检查= 5;重复字符串列= 6;查找stmt = 7;}
(Bug #24968735, Bug #83595)
创建的表
创建文件格式文件
声明list_objects
错误地将表报告为集合。(错误# 24963952)发送
期望。开放
在身份验证之前连接的套接字会导致以下错误消息:...Plugin mysqlx报告:'10:Invalid message 24 received during客户机初始化'…Plugin mysqlx报告:'10:从socket读取错误文件描述符(9)2'
(Bug #24940144, Bug #83494)
在Linux上,MySQL Shell在JavaScript和Python交互模式下隐藏集合,如果集合名称中的字母大小写不一致。(错误# 24848125)
如果存在多个与身份验证用户匹配的用户帐户,X Plugin将尝试验证所有匹配的帐户,而不是最佳匹配的帐户。(错误# 24847537)
c++ 11中具有相应功能的Boost类被移动或包装。(错误# 24680856)
当两个X Plugin实例在同一个端口上启动时,产生的错误消息被分成两行,包含重复的信息。(Bug #24679018, Bug #83008)
的
performance_schema.threads
表格没有显示processlist
X插件的统计数据。(错误# 24638038)如果客户端向服务器发送了未知的消息类型,服务器将返回错误消息,然后断开客户端连接。(Bug #24611754, Bug #82868)
当客户端发送一个长度为零的消息时,X Plugin不发送响应。对于后续的消息,客户端收到一个错误
E_X_BAD_MESSAGE
并断开连接,这取决于头内容。(Bug #24595459, Bug #82862)X Plugin向任何连接的用户显示它的版本,包括那些没有经过身份验证的用户。(Bug #24562707, Bug #82784)
类中存在重复的字段名时,X Plugin生成了一个错误的查询
更新
声明。(错误# 24510083)该声明
list_objects
中某些视图返回错误信息sys
数据库。(错误# 24472325)X Plugin试图向客户端发送结果集,即使连接已经关闭。如果连接被重置,插件现在会停止存储过程的执行。(错误# 24440344)
方法列出对象
list_objects
语句,但未显式设置数据库名称,会导致集合被错误地分类为表。(Bug #23205895, Bug #81248)X Plugin现在支持
sha256_password
插件。
Solaris:由于对系统运行时库的依赖,现在Solaris的最低要求版本是Solaris 11 update 3。
Solaris:在Solaris上,MySQL现在是用Developer Studio 12.5构建的海湾合作委员会.这些二进制文件需要安装Developer Studio C/ c++运行时库。参见这里了解如何只安装库:
https://docs.oracle.com/cd/E60778_01/html/E60743/gozsu.html
不兼容的更改:此前,为
插入……选择……重复密钥更新
其中,更新
指选择
列,则结果可能不正确选择
是一个联盟
.现在这样的表述是被禁止的,并且会产生错误。要绕过此限制,请编写联盟
作为派生表,这样它的行就可以作为一个单表结果集处理,这是允许的。看到插入……重复键更新语句.InnoDB:默认情况下,
InnoDB
在计算统计信息时读取未提交的数据。如果未提交事务从表中删除行,InnoDB
排除在计算行估计值和索引统计信息时被删除标记的记录,这可能导致使用事务隔离级别以外的事务并发操作表的其他事务的非最优执行计划读未提交
.为了避免这种情况,一个新的配置选项,innodb_stats_include_delete_marked
,可以启用,以确保InnoDB
包括在计算持久优化器统计信息时删除标记的记录。(错误# 23333990)InnoDB:移除了r -树的几何解析和边界框计算代码
InnoDB
到服务器。InnoDB:
InnoDB
现在支持NOWAIT
而且跳过锁
选择与选择……为分享
而且选择……更新
锁定读语句。NOWAIT
如果请求的行被另一个事务锁定,则使语句立即返回。跳过锁
从结果集中移除锁定行。看到锁定读并发,NOWAIT和SKIP锁定.选择……为分享
替换选择……共享模式锁定
,但共享模式锁定
保持向后兼容可用。这两个表述是等价的。然而,为分享
支持NOWAIT
,跳过锁
,的
选项。看到SELECT语句.tbl_name
的
对命名表应用锁定查询。tbl_name
请注意的
Now是一个保留字,不引用标识符就不能用作标识符。InnoDB:的
InnoDB
静止数据加密特性现在支持重做日志和撤消日志数据的加密,由innodb_redo_log_encrypt
而且innodb_undo_log_encrypt
配置选项。看到重做日志加密,Undo日志加密.InnoDB:
InnoDB
存储在磁盘上的内部临时表现在支持多个游标位置,允许同一个线程内的单个写入器和多个读取器访问。这种增强的目的是提供对递归和非递归公共表表达式(cte)的支持。此外,一致性读取访问
InnoDB
磁盘上的内部临时表被脏读方案替换,行计数为InnoDB
磁盘上的内部临时表现在使用行计数统计而不是较慢的表扫描。InnoDB:
InnoDB
现在将大对象压缩为一个较小的对象序列zlib
用于表的流ROW_FORMAT =压缩
.以前,大型对象数据被压缩为单个数据zlib
流。复制:现在可以将Group Replication组中的视图更改事件复制到类型为的外部多线程从(MTS)
数据库
.(Bug #25170698, Bug #84008)复制:当向。提供负超时参数或小数超时参数时
WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS ()
,服务器的行为出乎意料。这个解决办法:小数超时值按原样读取,没有舍入。
如果服务器处于严格的SQL模式,则拒绝负超时值并报错;如果服务器没有使用严格的SQL模式,则该值使函数立即返回NULL,而不需要等待,然后发出警告。
(Bug #24976304, Bug #83537)
复制:为了减少接收者(I/O)和应用程序(SQL)复制线程之间的争用,已经做了一些工作。这确保了从服务器能够跟上主服务器更高的插入负载。(Bug #78246, Bug #21753696)
复制:添加了
binlog_expire_logs_seconds
系统变量,它为清除二进制日志设置以秒为单位的间隔。这个变量的影响和expire_logs_days
是累积的,因此可以设置一个周期,例如1.5天。要完全禁用自动二进制日志清除,请将这两个变量设置为0,这是它们的默认值。(Bug #71697, Bug #18260088)复制:添加了性能模式表来监视复制延迟和队列。的
replication_connection_status
表已经更新了有关中继日志中最后一个排队事务的信息,以及当前在中继日志中排队的事务的信息。的replication_applier_status_by_coordinator
表已更新了关于写入工作缓冲区的最后一个事务的信息,以及协调器当前正在处理的事务的信息。的replication_applier_status_by_worker
表已经更新了有关工作者应用的最后一个事务的信息,以及关于当前正在应用的事务的信息。每个表中显示的信息包含事务的GTID、提交时间戳、处理阶段时间戳和完成的时间戳。在
replication_applier_status_by_worker
表,LAST_SEEN_TRANSACTION
列将替换为APPLYING_TRANSACTION
列。复制:新的binlog_expire_logs_seconds变量是现有expire_logs_days变量之外的一个全局服务器变量。其目的是实现比当前的日粒度更细粒度的二进制日志保留策略。
复制:通过二进制日志正确恢复DDL语句或事务实现了对基于二进制日志数据正确恢复DDL事务的支持。在新的数据字典上下文中,通过使用两阶段提交协议,可以对元数据进行更改,并将它们作为单个事务写入二进制日志。
复制:多源复制现在支持单通道复制过滤器。这使得从特定通道过滤掉所选复制数据的执行成为可能。到目前为止,复制过滤器是全局的,只适用于所有通道。
复制:基于行的复制现在在二进制日志中使用扩展表元数据。扩展的元数据有两个主要目的:当slave的表结构与master的表结构不同时,slave使用元数据平滑地传输数据;外部软件可以使用元数据解码行事件并将数据存储到外部数据库中。
复制:现在支持组复制
保存点
SQL事务。复制:添加了一个用于基于GTID的延迟复制和复制延迟监视的基础设施,使您能够正确地监视复制延迟。引入了与二进制日志中的每个事务(而不是每个事件或语句)相关联的两个新的时间戳。original_commit_timestamp的单位是从事务在原始主服务器上提交时起的微秒,而immediate_commit_timestamp的单位是从事务在直接主服务器上提交时起的微秒。
复制:的
重置的主人
语句已扩展,以允许指定二进制日志文件编号。的主重置为
语句接受一个参数,该参数指定要使用的新二进制日志文件的索引。的目的是通过替换来简化故障转移过程冲洗二进制日志
而且清除二进制日志到
具有单个重置的主人
声明。复制:用于定义延迟和计算延迟复制的过程得到了改进。这依赖于二进制日志中的一个新时间戳immediate_commit_timestamp,它是自事务被写入即时主服务器的二进制日志的epoch以来的微秒数。这意味着延迟不再按事件计算,而是按事务应用。
复制:现在可以根据提交时间戳或事务写集指定写入二进制日志的信息是否允许复制从端并行化。
使用写集比使用提交时间戳具有更好的并行性,因为它不依赖于提交历史。当以这种方式在复制从机上应用二进制日志时,它可能能够利用底层计算硬件(如CPU内核)的功能,从而加快这个过程。
选择并行化源的接口作为一个新的服务器系统变量实现
binlog_transaction_dependency_tracking
哪一个可以取任意值COMMIT_ORDER
,WRITESET
,或WRITESET_SESSION
.COMMIT_ORDER
(默认)导致使用提交时间戳记录并行化信息;WRITESET
使用写集将此信息记录下来,这样就可以并行处理任何没有更新同一行的事务;而且WRITESET_SESSION
以相同的方式行动WRITESET
,除非来自同一会话的更新不能重新排序。保存在内存中用于跟踪事务依赖项的行哈希历史的大小可以使用binlog_transaction_dependency_history_size
,也在本版本中介绍。JSON:增加了JSON实用函数
JSON_PRETTY ()
,它打印现有的JSON
值,或者任何可以成功解析为JSON文档的字符串,格式要便于人类阅读。每个JSON对象成员或数组值显示在输出的单独一行上;每个子对象或数组相对于其父对象有2个空格。例子:
mysql >选择JSON_PRETTY (' 123 ');+--------------------+ | JSON_PRETTY (123 ') | +--------------------+ | 123年 | +--------------------+ mysql >选择JSON_PRETTY(“[1、3、5]”);+------------------------+ | JSON_PRETTY(“[1、3、5 ]") | +------------------------+ | [ 1、3、5 ] | +------------------------+ mysql >选择JSON_PRETTY('{“a”:“10”、“b”:“15”,“x”:“25”}”);+---------------------------------------------+ | JSON_PRETTY('{“a”:“10”、“b”:“15”,“x”:“25 "}') | +---------------------------------------------+ | { " ”:“10”、“b”:“15”,“x”:“25 " } | +---------------------------------------------+
JSON:以前,当排序
JSON
的查询中的值命令
,每个值由排序键中具有固定长度的部分表示,每个这样的部分需要1K的内存。在许多情况下,这种使用是过度的——例如,一个整数标量值只需要相对非常少的字节,因此1K的剩余部分(90%或更多)被填充占据了。为了解决这个问题,引入了JSON排序键的可变长度部分,现在每个键部分只占用存储值所需的空间。这对性能有以下好处:
由于更有效地使用了排序缓冲区空间,文件排序不需要尽早或频繁地刷新到磁盘,这意味着可以在内存中对更多数据进行排序。
较短的键可以比较长的键更快地进行比较,为内存排序和需要使用磁盘的排序提供了显著的性能改进。
的
WEIGHT_STRING ()
调试功能不再支持水平
条款。(Bug #25469683, Bug #84723)对于Developer Studio 12.5, 32位构建现在是禁用的,除非
FORCE_UNSUPPORTED_COMPILER
选项。(Bug #25267157, Bug #84230)一些与存储引擎无关的外键约束检查正在内部执行
InnoDB
.这些工作现在在SQL层完成。(错误# 25252847)简化了一些GIS越界检查。感谢Daniel Black的贡献。(Bug #25202470, Bug #84062)
Developer Studio 12.5使用的编译器标志集得到了改进。(Bug #25148549, Bug #83955)
CMake现在使用
CMAKE_POLICY
的CMP0022新
而不是CMP0022老
.(Bug #25090147, Bug #83804)如果将MySQL配置为使用
-Wno-error
选项,mysql_config产生了不正确的输出——cflags
选择。编译器选项的集合mysql_config而且pkg-config生产现在是由白名单而不是黑名单决定的。(Bug #25040566, Bug #22898475, Bug #80662)
改进了UTF-8二进制排序的性能。(Bug #24788778, Bug #83247, Bug #25076862)
的systemd服务文件mysqld现在包括一个
10bet官方网站
的价值(单位)
章节提供了MySQL参考手册中systemd文档的链接。10bet官方网站(错误# 24735762)单元测试现在使用谷歌Mock 1.8。(Bug #24572381, Bug #82823)
未实施和不标准
与多维数据集
条款集团
不再受支持。请注意多维数据集
Now是一个保留字,不引用标识符就不能用作标识符。(Bug #24572048, Bug #82821)
这些过时的构建脚本已从MySQL源分发版中删除:
构建/ SETUP.sh
,构建/ autorun.sh
,构建/ cmake_configure.sh
,构建/ compile-dist
,cmake / configure.pl
.(错误# 24512933)移除
mysql_shutdown ()
MySQL 8.0.0中的C API函数已经恢复。它仍将在未来的MySQL版本中被删除,但该删除已被推迟。(Bug #24496976, Bug #82681)改进了Debian/Ubuntu打包维护脚本的一致性和可维护性。(错误# 23588977)
就地
ALTER TABLE
类型的列依赖已生成的列,现在可以对包含这些列的表进行列修改默认的
值,如果生成的列表达式中没有涉及修改的列。例如,更改零
属性可以在不重新构建表的情况下就地完成。(Bug #22987899, Bug #80832)对于转储的
mysql
系统数据库,, mysqldump对象不再生成DDL语句innodb_index_stats
而且innodb_table_stats
表。这些语句在转储重新加载时失败,因为用户无法访问这些表。(错误# 22655287)如果mysqld是调用
——daemonize
,stdout
而且stderr
被重定向到/ dev / null
如果连接到终端类型的设备,那么mysqld可以表现得像一个真正的守护进程。(错误# 21627629)mysql_secure_installation对有效的是和否回答有更严格的要求。(Bug #13344753, Bug #62925)
方法调用MySQL客户端和实用程序时,报告它们自己的特定于程序的版本号
——版本
选项,版本字符串没有遵循一致的格式。现在这些程序打印MySQL版本号(与mysqld),格式一致。(Bug #11763201, Bug #55885)一个新的
, mysqldump
选项,——network-timeout
,通过设置转储大型表max-allowed-packet
为其最大值,而网络读写超时为较大的值。默认情况下该选项是启用的。要禁用它,请使用——skip-network-timeout
.(Bug #11754493, Bug #46103)增加了两个JSON聚合函数
JSON_ARRAYAGG ()
而且JSON_OBJECTAGG ()
.的JSON_ARRAYAGG ()
函数接受一个或多个列表达式作为参数,并将结果集聚合为单个参数JSON
数组,如下所示:SELECT col FROM t1;+--------------------------------------+ | 上校 | +--------------------------------------+ | {" key1”:“value1”、“key2 value2“:}| |{“keyA”:“valueA”、“keyB”:“valueB "} | +--------------------------------------+ 2行(0.00秒)mysql >选择JSON_ARRAYAGG从t1 (col);+------------------------------------------------------------------------------+ | JSON_ARRAYAGG(坳 ) | +------------------------------------------------------------------------------+ | [{" key1”:“value1”、“key2”:“value2”},{“keyA”:“valueA”,“keyB”:“valueB "}] | +------------------------------------------------------------------------------+ 1行集(0.00秒)
数组元素的顺序未指定。
JSON_OBJECTAGG ()
接受两个列或表达式,分别将其解释为键和值;它将结果作为单个返回JSON
对象,如下所示:SELECT id, col FROM t1;+------+--------------------------------------+ | id |坳 | +------+--------------------------------------+ | 1 |{“key1”:“value1”、“key2”:“value2”}| | 2 |{“keyA”:“valueA”,“keyB”:“valueB "} | +------+--------------------------------------+ 2行(0.00秒)mysql >选择JSON_OBJECTAGG从t1 (id、坳);+----------------------------------------------------------------------------------------+ | JSON_OBJECTAGG (id、坳 ) | +----------------------------------------------------------------------------------------+ | {" 1 ":{“key1”:“value1”、“key2”:“value2”},“2”:{“keyA”:“valueA”、“keyB”:“valueB "}} | +----------------------------------------------------------------------------------------+ 1行集(0.00秒)
一个
零
键导致错误;重复的键将被忽略。有关更多信息,请参见聚合函数.(Bug #78117, Bug #21647417)
MySQL现在支持
导入表
声明,进口MyISAM
表中所包含的信息.SDI
(序列化字典信息)元数据文件。这个语句对于导出非常有用”生”表文件从一个服务器导入到另一个服务器,并提供了一个更快的替代方案,可以将表转储为SQL语句文件使用, mysqldump和处理转储文件使用mysql.有关更多信息,请参见进口TABLE语句.弃用的取代实用程序已被删除。如果您希望继续使用此实用程序,请确保在升级到当前版本之前保留MySQL已安装版本的副本。
不兼容的更改:为其提供显式列名称列表的视图的存储定义可能无效。例如,对于以下语句:
CREATE VIEW v1 (name2) AS SELECT 1 AS name1 UNION SELECT 2
存储的定义是这样的,这是无效的:
CREATE VIEW v1 AS SELECT 1 AS name2 UNION SELECT 2 AS 2
现在,存储定义中的列名不会被列名列表替换:
CREATE VIEW v1 (name2) AS SELECT 1 AS name1 UNION SELECT 2 AS 2
这种变化导致的不兼容性是
创建视图
语句不能再单独从INFORMATION_SCHEMA
的观点
表,因为VIEW_DEFINITION
值不显示列名列表。相反,您还必须咨询列
表获取列名列表。或者(更简单),使用显示创建视图
.(Bug #23265335, Bug #81377)InnoDB;微软的Windows操作系统:在Windows上的MySQL 64位构建中,由于缺少重试路径的正确操作所必需的强制转换,文件I/O重试结果被错误解释,导致断言失败和操作系统错误。(错误# 24711351)
InnoDB:在调试构建中,初始化锁存调试的调用会由于竞争条件引发断言。(错误# 25700405)
InnoDB:取消要求第一个undo表空间使用ID为1的限制。第一个undo表空间现在可以被分配一个空间ID,而不是1。undo表空间的空间ID值仍然以连续的顺序分配。(错误# 25551311)
InnoDB:一个
删除表
操作在服务器上引发断言innodb_force_recovery
设置为5或6。删除表
不能再带这些东西了吗innodb_force_recovery
设置。(错误# 25385590)这个问题是19779113 Bug的回归。
InnoDB:在没有性能模式的情况下编译服务器会导致构建失败。(错误# 25348787)
InnoDB:在预读期间,使用了错误的页大小来计算表空间大小。(错误# 25330449)
InnoDB:编译在Fedora 25使用
DWITH_LZ4 =系统
已弃用,导致生成失败LZ4_COMPRESS_LIMITEDOUTPUT
函数。(错误# 25297593)InnoDB:禁用宏,例如
UNIV_PFS_MUTEX
,UNIV_PFS_RWLOCK
,UNIV_PFS_THREAD
导致编译错误。(错误# 25251082)InnoDB:在填充受外键约束影响的虚拟列时进行字段名比较时,虚拟索引中的NULL虚拟列字段名会导致服务器退出。(错误# 25222337)
InnoDB:的文件句柄类型名称
InnoDB
文件I/O性能模式检测已更改os_pfs_file_t
来pfs_os_file_t
.(错误# 25220118)InnoDB:打开子查询的事务
INFORMATION_SCHEMA
表可以阻塞并发的DDL操作。(错误# 25200952)InnoDB:在进行范围比较时,传递的是第二个索引字段号,而不是聚类索引字段号,最终导致检索不正确的字段。(错误# 25175249)
InnoDB:在重新启动时,由于缺少服务器出口而导致服务器退出
my_thread_init ()
而且my_thread_exit ()
类的后台线程的函数st_my_thread_var
结构。(错误# 25167032)InnoDB:一个memcached使用非默认读批处理大小配置的读操作会导致服务器退出。(错误# 25147515)
InnoDB:的
INFORMATION_SCHEMA。REFERENTIAL_CONSTRAINTS
表报告零
对于外键约束名称(UNIQUE_CONSTRAINT_NAME
),然后重新启动服务器。(错误# 25126722)InnoDB:控件的外键验证过程中不必要地使用了间隙锁
读过承诺
隔离级别。(错误# 25082593)InnoDB:加载
InnoDB
在MySQL 5.7中,表需要更多的内存,这主要是由于临时表优化引入了内存结构成员。内存中的结构成员只用于临时表,现在只在需要时分配。(错误# 25080442)InnoDB:后
截断表
操作表上有一个全文
索引、空间大小计算错误,导致读取无效。(错误# 25053705)InnoDB:准备好的XA事务由高优先级事务回滚。如果阻塞事务处于准备状态,则高优先级事务应该等待。(错误# 25032066)
InnoDB:
InnoDB
传递了一个无效的参数系统调用(SYS_futex)
.(Bug #24923840, Bug #83375)InnoDB:在重做日志恢复后,undo表空间对象的节点大小可能偶尔为零,最终导致错误。此外,undo表空间对象被错误地放置在LRU列表中,当释放表空间对象时,undo表空间的头页可能出现在缓冲区缓存中,导致读取第一页时文件打开失败。(错误# 24916359)
InnoDB:在检查点期间,所有
MLOG_FILE_NAME
重做日志记录写入一个小事务(mtr),导致日志解析缓冲区溢出。(Bug #24793413, Bug #83245)InnoDB:海湾合作委员会
mach_parse_compressed
函数应该根据第一个字节的值加载1到5个字节。由于一个GCC bug, GCC 5和6发出代码,在检查第一个字节值之前加载四个字节(GCC bug #77673)。一个解决方法可以防止这种行为。感谢Laurynas Biveinis的补丁。(Bug #24707869, Bug #83073)InnoDB:改进了与表空间类型函数相关的代码,以解决命名一致性、函数分布和函数使用等问题。(Bug #24706739, Bug #83092)
InnoDB:在调试版本中添加了一种机制,以确保键
InnoDB
性能模式检测注册到性能模式。如果性能模式键的数量与注册的性能模式键的数量不匹配,该机制将导致在调试构建时启动失败。(错误# 24686908)InnoDB:更新表统计信息时的竞态条件可能导致估计的行数为1和错误的查询执行计划。(Bug #24666839, Bug #82968)
InnoDB:由于
glibc
Bug,短时间分离的线程可能在调用者返回之前退出pthread_create ()
,导致服务器退出。感谢Laurynas Biveinis的补丁。(Bug #24605956, Bug #82886)InnoDB:与表统计信息相关的代码中的错误在
dict0stats.cc
源文件。(错误# 24585978)InnoDB:控件中表示模块的模块基名称的列表
InnoDB
用于分配内存的代码库ut_malloc
或ut_new
是不完整的。的报告使用该列表InnoDB
内存分配事件数据。(错误# 24571816)InnoDB:一些
InnoDB
rw-lock和互斥键没有注册以便在性能模式中使用。(错误# 24571597)InnoDB:的值增加后
innodb_undo_logs
重新启动服务器,为新分配的回滚段分配undo表空间时,活动的undo表空间数量没有增加。(错误# 24488141)InnoDB:未使用的
MLOG_UNDO_HDR_DISCARD
删除重做日志记录类型和相关功能。(错误# 24482001)InnoDB:当清除线程启动时,由于服务器没有将表空间ID识别为undo表空间ID,引发了一个断言。(错误# 24479773)
这个问题是Bug #23517560的回归。
InnoDB:
InnoDB
在恢复期间从doublewrite缓冲区恢复页面时,错误地报告了关于缺少加密的错误。(错误# 24471076)InnoDB:
InnoDB
报告了对表的缓冲池中页数的错误估计。删除页面时,页面数没有正确减少。(错误# 24464147)这个问题是Bug #21747906的回归。
InnoDB:实现了以下与undo表空间管理相关的代码更改:
为临时表空间回滚段添加了一个内存中数组,从而在
TRX_SYS
页,供启用重做的回滚段使用。的结果是,在设置临时表空间回滚段时不再需要考虑
innodb_rollback_segments
配置单独的undo表空间时的配置选项。修改了与撤销日志和回滚段相关的代码注释。
固定列出回滚段和撤消表空间的数组被替换为动态大小数组。
初始化undo表空间的函数被重构。
添加了一个类,用于管理即时创建撤消和撤消文件名。
(错误# 24462978)
InnoDB:在缓慢关闭期间,缓存的撤销段没有从回滚段历史中删除。(错误# 24450908)
InnoDB:在仅生成聚集索引的表上进行表重建操作时发生错误(
GEN_CLUST_INDEX
)引发和断言,因为调用错误时使用了无效的键名。(错误# 24444831)InnoDB:MySQL不是用GCC 6.1.1构建的。(错误# 24438752)
InnoDB:在服务器处于只读模式时旋转表空间加密主密钥将引发断言而不是显示错误消息。(错误# 24404091)
InnoDB:在没有显式定义主键的表上,
InnoDB
没有替换隐式聚集索引(GEN_CLUST_INDEX
对象上定义了唯一键时)非空
列。(错误# 24397406)InnoDB:
处理程序::keys_to_use_for_scanning ()
已从处理程序API中删除。该函数不再被使用。的HA_READ_ORDER
索引标志为每个索引提供相同的信息。(错误# 24364448)InnoDB:由于与自适应哈希索引特性相关的回归而断言的页面清理器线程。(错误# 24346574)
这个问题是Bug #21407023的回归。
InnoDB:
InnoDB
未能释放全文优化器线程使用的内存。(错误# 24331265)InnoDB:在恢复期间,
InnoDB
试图使用空引用获取LOB页。(错误# 23615208)InnoDB:在添加新索引时,服务器删除了内部定义的外键索引,并试图使用在虚拟生成列上定义的辅助索引作为外键索引,导致服务器退出。
InnoDB
现在允许外键约束引用在虚拟生成列上定义的辅助索引。(错误# 23533396)InnoDB:一个
INFORMATION_SCHEMA。文件
查询导致服务器退出,原因是并发表空间创建操作存在竞争条件。(Bug #23477214, Bug #81614)InnoDB:在原地执行过程中的并发DML操作
ALTER TABLE
重建表的操作没有更新虚拟索引,导致虚拟索引和聚集索引之间不匹配。(错误# 23219499)InnoDB:一个
截断表
操作了dict_sys
在从缓冲池中扫描和删除页面时使用互斥锁,导致并发DDL操作停止。互斥锁现在在扫描期间释放,并在扫描完成时再次获取。(Bug #23070734, Bug #80060)InnoDB:将GIS数据插入到r -树中会引发一个断言,因为在存储b -树游标时遇到了缺少页码字段。(Bug #23044098, Bug #80939)
InnoDB:写一个
InnoDB
内部临时表没有增加Handler_write
计数器。(错误# 23024178)InnoDB:更改
InnoDB
MySQL 5.7中的恢复过程可能需要在恢复过程中扫描三次重做日志。为了减少扫描的次数,第一次扫描和第二次扫描被合并。通过这种改变,只有一次扫描,除非由扫描填充的重做日志记录哈希表达到了它的内存阈值。在这种情况下,将启动第二次扫描,执行同步扫描并应用。(Bug #22963951, Bug #80788)InnoDB:table-copying在线
ALTER TABLE
操作上的ROW_FORMAT =冗余
带有索引虚拟列的表引发断言。(错误# 22018745)InnoDB:服务器重启后,并发
插入
对具有自动递增主键的表进行操作会导致重复输入错误。之后没有改变当前的自动增量值auto_increment_increment
而且auto_increment_offset
设置被修改。(Bug #20989615, Bug #76872)InnoDB:的性能模式检测
InnoDB
Windows上文件I/O被禁用。(错误# 14025581)InnoDB:控件中超过64个字符限制的自动生成的外键约束标识符出现截断
INFORMATION_SCHEMA。TABLE_CONSTRAINTS
CONSTRAINT_NAME
列。自动生成的外键约束标识符不能再超过64个字符的限制。(Bug #11745347, Bug #13942)InnoDB:的
row_search_mvcc ()
函数在进行范围查询时不必要地遍历了整个表,当记录不在事务读视图中时就会发生这种情况。(Bug #84202, Bug #23481444, Bug #25251375)包装:的my_create_minidump函数称为Windows API函数MiniDumpWriteDumpExceptionParam参数的值(NULL)不正确。这将导致从minidump文件中遗漏异常信息。(Bug #24505650, Bug #82695)
分区:对于分区表,删除分区也会删除表的触发器。(错误# 24449174)
分区:更新在生成的列上有分区的表的行可能会导致调试构建的断言失败,并在非调试构建中返回不正确的结果。(Bug #22574695, Bug #80080)
复制:MySQL 8.0.1添加了原始的提交时间戳相关语句,但是mysqlbinlog错误地报告这些语句从MySQL 8.0.0开始就存在了,因为它们是用错误的版本号写入日志的
80000
.修正将版本更改为80001
在mysqlbinlog转储。(错误# 25710507)复制:
MEMBER_STATE
组复制成员没有从错误
来离线
当停止GROUP_REPLICATION
如果错误状态是由ER3092引起的,则执行该命令。(错误# 25674926)复制:在启用流量控制的情况下,达到最小流量控制配额1将导致Group Replication在节流原因不再生效时不停止节流。(错误# 25461354)
复制:中使用无法解析的主机名
group_replication_group_seeds
引起的开始GROUP_REPLICATION
失败。修正确保主机名在group_replication_group_seeds
在启动组复制时验证,且列表必须包含至少一个有效地址。无效的地址将被忽略。(Bug #25460324, Bug #84674)复制:在从机上处理中继日志文件时,锁争用影响了二进制中继性能。(Bug #25321231, Bug #77778)
复制:从集群中移除的失败节点可以在重新加入集群时被驱逐。(错误# 25311008)
复制:的
_gr_user
通过安装Group Replication插件创建的帐户在卸载插件时没有可靠地删除。(错误# 25298987)复制:在离线节点上启动组复制时,该节点可以配置为复制,但无法进行恢复。(错误# 25256910)
复制:在使用多线程从机时,应用程序错误显示的工作人员ID数据与Performance Schema复制表中的外部化数据不一致。(错误# 25231367)
复制:并非所有组复制GCS调试和跟踪消息都在调试模式下启用。(Bug #25209109, Bug #84079)
复制:编译MySQL 5.7.17失败,出现变长数组错误。(Bug #25163241, Bug #83994)
复制:类型的表进行复制时,返回一条错误显示字段长度的消息
utf8mb3
列到具有相同定义的表,其中列是用utf8mb4
字符集。(Bug #25135304, Bug #83918)复制:当组内的成员不活动时,组复制GCS没有丢弃消息。(错误# 25134074)
复制:在Windows平台上编译Group Replication插件时,给出了一些不必要的警告。(错误# 25119288)
复制:如果旋转主服务器上的二进制日志,并且存储二进制日志文件的分区上出现了满盘状态,则服务器可能会意外停止。该修复增加了在转储线程切换到下一个二进制日志文件时检查二进制日志是否存在的功能。如果禁用二进制日志,则所有到当前活动日志的二进制日志都被传输到slave,并向接收线程返回一个错误。(错误# 25076007)
复制:如果Group Replication插件试图联系服务器,而此时已经不可能,则会引发断言。(错误# 25071492)
复制:GTID事务跳过机制在XA事务中无法正常工作,该机制将静默地跳过先前执行的GTID事务。(错误# 25041920)
复制:在组复制应用程序SQL线程上执行重新启动后,插件不再能够检测到线程的失败。(错误# 24969065)
复制:在Windows上构建组复制需要至少2.8.12的CMAKE版本。(错误# 24964522)
复制:如果中继日志索引文件命名为不存在的中继日志文件,
重置所有奴隶
有时没有完全清理得当。(错误# 24901077)复制:当MTS从应用程序因为(注入的)错误而停止时,它没有报告任何用于故障排除的有用信息。(错误# 24822686)
复制:
冲洗二进制日志
从多个服务器复制数据可能会变慢。(Bug #24806259, Bug #83270)复制:在使用XA事务时,如果复制从上的应用程序(SQL)线程发生锁等待超时或死锁,则自动重试将不起作用。原因是,虽然SQL线程将执行回滚,但它不会回滚XA事务。这意味着当事务被重试时,第一个事件是
XA开始
这是无效的,因为XA事务已经在进行中,导致XAER_RMFAIL
错误。(错误# 24764800)参考文献:参见Bug #83588, Bug #24923091, Bug #24966941。
复制:启用组复制插件导致
performance_schema_max_mutex_classes
超过200的默认值。因此,一些组复制互斥器并没有出现在performance_schema.setup_instruments
表格(错误# 24746530)复制:部分失败
创建用户
,重命名用户
,或改变用户
当禁用二进制日志记录时,语句没有正确地使用自动生成的或指定的GTID。(错误# 24693798)复制:
Binlog_sender
该方法将事件从二进制日志写入包缓冲区,然后将包发送到从服务器,但并没有像预期的那样减少发送缓冲区的大小。(错误# 24643036)复制:对gtid的组提交更新进行了重构,以提高具有许多小事务的工作负载的性能。(错误# 24398760)
复制:如果
relay_log
选项未在配置文件中指定,则relay_log_basename
变量正在内部动态地构造主机名
但是,relay_log_basename
变量未设置。当从服务器试图访问这个未初始化的变量时,会导致服务器意外停止。(错误# 24352667)复制:对于用yaSSL构建的服务器,使用带有加密连接的组复制可能会导致等待视图传递的超时失败。(错误# 23592214)
复制:当使用多线程从进程时(
slave_parallel_workers
的值大于0)Seconds_Behind_Master
旋转中继日志时不正确。(错误# 23532304)复制:一个
XA准备
在中间步骤中失败的语句可能导致不一致XA
事务状态,ID
= -1,但binlogged
旗子升起来了真正的
.这导致在执行时断言XA提交
而且XA回滚
查询。(错误# 22915670)复制:时,服务器阻止几个与复制相关的管理语句工作
read_only
使能系统变量。(Bug #22857926, Bug #25363745, Bug #25326058, Bug #84350, Bug #84437)复制:
改变主
对于不存在的通道,可以提出断言。(错误# 22255698)复制:方法指定的延迟
binlog_group_commit_sync_delay
系统变量应用于太多的二进制日志提交组。(错误# 21420180)复制:向复制到从服务器的二进制日志文件中生成的不需要的fseek数量已经减少。(Bug #83226, Bug #24763579)
复制:错误#81657的修复没有正确合并到MySQL 8.0中。感谢Laurynas Biveinis提醒我们。(Bug #83124, Bug #24715790)
复制:的
rpl.rpl_binlog_errors
在Windows上的测试偶尔会失败。(Bug #82302, Bug #24330138)复制:当
binlog_group_commit_sync_delay
被设置为1到9之间的值,如果binlog_group_commit_sync_no_delay_count
设置为大于1的值,并且事务提交的数量小于binlog_group_commit_sync_no_delay_count
,如果没有收到更多的提交,这些提交将永远挂起;如果binlog_group_commit_sync_no_delay_count
设置为0时,所有事务提交永远挂起。(Bug #80652, Bug #22891628)复制:并发
创建触发器
而且下降触发
语句没有按正确的顺序被二进制记录,导致从库失败。(Bug #77095, Bug #21114768)微软的Windows操作系统:在Windows上,
显示表
如果挂db_name
db_name
是大写的。(Bug #24800048, Bug #83262)微软的Windows操作系统:Windows上不再支持32位版本,但是
CMake
未能检测何时将尝试32构建的构建,导致稍后的编译错误。现在CMake
检测32位构建尝试并产生适当的错误消息。(Bug #24487483, Bug #82645)Solaris:当
WITH_INNODB_MEMCACHED
CMake选择启用,memcached现在可以使用Developer Studio 12.5编译器在Solaris 11和12上构建。(Bug #24504155, Bug #82692)Solaris:Solaris上的库搜索路径处理不正确。(Bug #24487934, Bug #82646)
JSON:当一个
JSON
值由封装在多层JSON数组、对象或两者中的大型子文档组成JSON
值有时需要过多的时间来完成。(错误# 23031146)JSON:当一个
零
价值存在于JSON
列的查询结果GROUP_CONCAT ()
一起命令
从句并不总是正确的。(错误# 22992666)JSON:内部
rapid_json_handler
使用自己的数据结构来表示部分构建的DOM;这些必须转换成aJson_dom
返回结果之前的。现在,这个处理程序直接构建图表,这减少了构建图表所需的工作量,从而减少了解析JSON文档所需的工作量。(错误# 22900110)JSON:内部函数
Item_func_case: val_json ()
不总是按预期设置空值标志时情况下
表达式计算零
,导致在服务器的调试版本中进行断言。(错误# 22887227)JSON:的
SUM ()
函数截断从JSON文档中提取的十进制值,产生整数结果。(Bug #84935, Bug #25530204)JSON:如果JSON文档中包含的double值略大于double可以表示的最大值,则会以静默方式将其替换为零,而不是拒绝该值并引发错误。这些值现在在MySQL JSON文档中被正确处理。
潜在的问题被追溯至RapidJSON的一个问题,该问题已报告给该库的开发人员问题# 849.(Bug #84891, Bug #25518504)
JSON:的
JSON_SEARCH ()
而且JSON_CONTAINS_PATH ()
函数无法工作时one_or_all
参数使用UTF-16编码指定。对于这两个函数,这个参数现在都转换为utfmb4
如果需要,在检查它的值之前。(Bug #84880, Bug #22516960)JSON:的
JSON_UNQUOTE ()
函数不能处理使用UTF-16编码的字符串。现在这些字符串被转换为utfmb4
先在内部加工。(Bug #84878, Bug #25516881)JSON:更新相同的
JSON
列可能导致向表中写入不正确的值。当第二次更新用列值的子集覆盖列值时,就会发生这种情况。下面是这种语句的一个例子:SET col = JSON_ARRAY(价值), col = col->'$[0]';
(Bug #84694, Bug #25461627)
JSON:的函数
JSON_QUOTE ()
而且JSON_UNQUOTE ()
没有正确地使用多字节字符集,如utf8mb4
.(Bug #84680, Bug #25455065)参考文献:参见Bug #77234, Bug #21193273。
JSON:错误3152的错误消息
ER_JSON_USED_AS_KEY
已从JSON列' '% 1 ! ' '不能在关键规范中使用更准确,更容易混淆JSON列'% 1 ! '只支持通过指定JSON路径上生成的列进行索引.(Bug #81364, Bug #23274244)JSON:在某些平台上,MySQL JSON功能的内部测试在启用调试的服务器上运行时会耗尽堆栈空间。由于没有及时检查堆栈的使用情况,服务器没有检测到这种情况,导致服务器退出。
解决这个问题的方法有两个:
现在在试图序列化嵌套数组或对象之前进行堆栈溢出检查,以便在处理深度嵌套的JSON文档时,操作会优雅地失败,而不会导致退出。
JSON文档的序列化已经重新组织,以便在不进行优化的情况下编译时减少对堆栈的使用。
(Bug #81083, Bug #23106330, Bug #26399306)
MySQL不能用GCC 7编译。(Bug #25643811, Bug #26825211)
(无证)
WINDOWS_RUNTIME_MD
CMake选项已被删除。(错误# 25611359)如果
——skip-innodb
或者使用了其中一个变体,一个虚假的警告avoid_temporal_upgrade
是生成的。(错误# 25573578)mysqld_safe事件解释服务器重启失败
文件是存在的。(错误# 25572504)PID_FILE
.shutdown这个问题是Bug #11751149的回归。
对于Debian/Ubuntu包,用户定义的排序文件可能会在MySQL升级过程中被覆盖。Charset文件现在被标记为conffile,以便用户自定义在升级期间生成是否覆盖它们的提示。(Bug #25525628, Bug #84761)
为
创建表
语句用数据库限定符指定表名并包含数据目录
或索引目录
选项,如果没有默认数据库,则会发生错误。(Bug #25514146, Bug #84861)referenced_table_schema
而且referenced_table_name
的字段值mysql.foreign_keys
数据字典表不以小写形式存储时lower_case_table_names
被启用。(错误# 25495714)使用以下命令启动服务器
performance_schema_digests_size = 1
非正常退出。(Bug #25492129, Bug #84786)对于通过yaSSL链接的客户端,当发生读超时时,连接将失效,而不是重新尝试读。(错误# 25444075)
MySQL编译在不同的目录产生不同的构建,泄漏绝对路径到调试信息和
__FILE__
.(Bug #25436469, Bug #84608, Bug #25859274, Bug #85855)UCA 9.0.0排序规则的计算对于裁剪包含缩写字符的规则是低效的。(Bug #25426632, Bug #84577, Bug #25426632, Bug #84577)
负的内部连接超时值导致连接空闲并终止。负值现在会导致连接在没有I/O的情况下无限期阻塞。(错误# 25408557)
互斥锁性能模式名称太长,在服务器启动时产生警告。(错误# 25406915)
MySQL在某些平台上编译失败
-DWITH_LIBWRAP =对
.CMake支持现在检查是否tcpd.h
具有适当的函数原型。(Bug #25395543, Bug #84495)在数据字典表列上定义的索引超过了初始化实例时的最大索引键长度
innodb_page_size = 4 k
.(错误# 25384527)mysqld_safe没有检查目录是否由
——basedir
选择的存在。(错误# 25365194)配置CMake与
- g忍者
导致构建输出不适合Xcode或Visual Studio以外的构建平台。(错误# 25358460)mysqld_safe文件命名的错误日志文件失败
——日志错误
期权是先进先出。(Bug #25356221, Bug #84427)对于准备好的语句,如果子查询或派生表中的别名依赖于另一个别名,则可能在语句执行期间导致不正确的行为。(Bug #25343335, Bug #84398, Bug #25171608)
mysqld_safe如果
——datadir
选项值以a结尾/
的性格。(错误# 25319457)最近的变化是mysqld_safe导致了mysql.server如果将基目录指定为与编译后的默认绝对路径不同的绝对路径,则脚本将无法启动它。(Bug #25319392, Bug #84263)
的
CONNECTION_CONTROL
如果禁用了性能架构,插件将编译失败。(Bug #25308357, Bug #84304)使用MySQL Workbench创建的帐户密码没有正确过期。(错误# 25299309)
对于用于rpm的System V初始化脚本
(mysqld)
选项文件部分被忽略,例如pid文件
.(Bug #25287707, Bug #84172)初始化脚本启动失败mysqld_safe如果使用非默认基目录。(Bug #25261472, Bug #84219)
CMake
现在会检测GCC 5.3.0循环优化错误是否发生,如果发生,则尝试解决方法。(错误# 25253540)mysqld_safe——已没有工作(早期错误修复的无心后果)。(Bug #25244898, Bug #84173)
分号(
;
)字符可能导致从相同的语句生成不同的摘要。(Bug #25244533, Bug #83253)组件不能在不引用其私有实现的情况下注册服务。一个
SERVICE_IMPLEMENTATION (
Macro现在可以避免这种情况。(错误# 25238906)组件
,服务
)某些存储函数,如果在查询中使用
在哪里
子句中,可以使用索引条件下推(这不应该发生)来处理,从而导致服务器退出。(Bug #25196653, Bug #25174454)为
ai_ci
基于Unicode排序算法9.0.0的排序,比较相等的重音字符被处理为不同的就像
比较。(Bug #25167284, Bug #83999)与客户有关联
libmysqlclient
,在使用预处理语句时可能发生无效的内存访问。(错误# 25164932)的命令,有些Linux启动脚本没有处理
datadir
设置正确。(错误# 25159791)如果为分区表的列指定了字符集,则在升级时可能会发生分段错误。(错误# 25153261)
加载数据
未能接受转义序列后的多字节字符。(Bug #25147988, Bug #83950, Bug #25865525)修复了Bug #25088048导致使用的命令mysqld_safe启动MySQL服务器,不再包含mysqld路径。(错误# 25144379)
这个问题是Bug #25088048的回归。
对UCA针对性,
就像
与以转义字符结束的模式进行比较会返回不正确的结果。(Bug #25140629, Bug #83930)中定义的字符集和排序规则被使用
db.opt
从MySQL 5.7升级到MySQL 8.0时,会出现一个MySQL文件。(错误# 25139901)现在,数据字典缓存作为事务提交的一部分进行更新,而不是使用单独的函数调用在DDL语句的末尾更新数据字典缓存。(Bug #25095798, Bug #83818)
创建表
现在需要文件
特权如果数据目录
或索引目录
显式指定为表或分区选项。ALTER TABLE
要求文件
如果其中任何一个选项显式指定为分区选项,则将具有特权(如果指定为表选项,则忽略它们)。(错误# 25092566)对于匈牙利缩略语和结束语,ICU顺序和MySQL Unicode排序有一些不同。MySQL现在遵循ICU顺序。(错误# 25090543)
使用二进制排序规则时,数据字典初始化和启动失败。为创建数据字典模式而生成的查询字符串没有向二进制排序规则名称添加引号。(Bug #25054104, Bug #83706)
执行包含访问视图的查询的存储过程可以分配直到会话结束才释放的内存。(错误# 25053286)
在FreeBSD 11上的编译尝试检查失败
MAP_NORESERVE
,它不再被定义。(Bug #25048128, Bug #83689)mysql-test-run.pl现在检查是否
TSAN_OPTIONS
设置环境变量。如果是,则将该值作为包含ThreadSanitizer抑制(在测试运行期间要忽略的错误)的文件的路径名。此外,——清洁
现在选择的原因mysql-test-run.pl扫描服务器错误日志以查找ThreadSanizer消息。(Bug #24970905, Bug #83601)在用非零启动服务器之后
——lower-case-table-names
设置时引发断言使用INFORMATION_SCHEMA;
是第一个客户的第一条指令。(错误# 24963580)对于不区分大小写的Unicode排序规则,各种空格字符没有哈希到相同的值,导致它们之间的比较不正确。(Bug #24956750, Bug #83549)
字典客户端现在跟踪DDL语句修改的未提交的字典对象,使得同一个会话未提交的更改对字典客户端可见,而不会在提交之前影响字典对象缓存。(Bug #24956365, Bug #83548)
同步字典对象缓存未正确处理。一个线程检索到的对象可以在等待线程试图访问它之前从缓存中删除。(错误# 24949179)
CMake
现在避免配置-fexpensive-optimizations
选项用于GCC版本,该选项会触发错误的移位或优化。(Bug #24947597, Bug #83517)CMake
对象进行编译时添加了支持化c++ 03
选项。现在用This代替thanstlport
默认情况下。(Bug #24947136, Bug #83512, Bug #25229424)NCHAR
而且国家的字符
是同义词,但演员(
成功,而expr
NCHAR)演员(
没有。现在工作。(错误# 24934161)expr
作为国家字符)OEL RPM包现在可以更好地检测哪些平台具有多库支持(可以为此安装32位和64位库)。感谢Alexey Kopytov的补丁。(Bug #24925181, Bug #83457)
OEL RPM包现在可以更好地检测哪些平台不支持多库(可以为此安装32位和64位库)。感谢Alexey Kopytov的补丁。(Bug #24916428, Bug #83428)
的
定位()
函数返回零
如果字符串的子串
或str
论点是零
,但如果pos
论点是零
.现在它返回零
如果任何参数是零
.(Bug #24911350, Bug #83427)如果参数可空性处理不当,位操作可能导致服务器退出。(Bug #24910958, Bug #24930038, Bug #24930829)
块嵌套循环算法可能在查询执行期间分配过多内存。(错误# 24909223)
关于在MySQL 5.7及更高版本中构建MySQL 5.6兼容性库的信息
.spec
文件只需要建设libmysqlclient
而且libmysqld
.有关建立InnoDB
Memcached插件被移除。(Bug #24908345, Bug #83409)视图元数据的不正确更新可能引发断言。(错误# 24834622)
初始化的
keyring_okv
插件失败时,STANDBY_SERVER
布景缺失了okvclient.ora
配置文件,有效地使这成为一个强制设置。STANDBY_SERVER
现在是可选的。(错误# 24816271)获取的数据字典对象
Dictionary_client: acquire_uncached ()
现在由当前的自动发布者而不是调用者拥有。另外,收购TABLE_SHARE
执行视图对象获得()和
克隆()代替acquire_uncached ()
.(Bug #24813358, Bug #83296)对于在多表中使用的派生表,特权检查可能不正确
更新
如果派生表合并到外部查询中,则在存储过程或视图对象中调用,用于对象的第二次或后续执行。(错误# 24810564)的
Created_tmp_tables
在没有创建临时表的情况下,状态变量会增加。(Bug #24808970, Bug #83287)如果在迁移例程时解析存储的例程体失败,从MySQL 5.7到MySQL 8.0的就地升级就会失败。现在报告了一个警告,并且创建了例程,而不解析其主体。另外,当视图迁移过程中视图的依赖关系解析失败时,将报告警告。(Bug #24805140, Bug #83275)
进行编译,mysql_upgrade是否依赖于动态生成
sql_commands_system_tables_data_fix.h
文件,但缺失的依赖项可能导致无法生成该文件。(Bug #24802377, Bug #83272)访问访问控制列表(ACL)缓存的事务与使用ACL缓存进行填充之间的竞争条件
INFORMATION_SCHEMA
表可能导致服务器退出。(错误# 24786029)为调试构建,
解释
或描述
对于数据库或表名大于最大允许长度的表,将引发断言而不是显示适当的错误。(Bug #24751177, Bug #83114)实现几个
INFORMATION_SCHEMA
表作为数据字典表上的视图引入了许多仅供服务器内部使用的本机SQL函数,但它们可以由用户调用。现在,如果用户调用这些函数,则会产生错误。(Bug #24749248, Bug #83189)情况下
,合并()
,如果()
而且IFNULL ()
可能错误地合并混合的有符号和无符号参数,并产生错误的结果类型。(Bug #24733658, Bug #83148)从启用SSL的客户端到服务器的连接成功,即使
——ssl-mode
有一个价值VERIFY_CA
或VERIFY_IDENTITY
客户端没有提供CA证书。(Bug #24732452, Bug #23189252, Bug #25397416, Bug #84508)在数据目录中手动创建一个目录导致
使用
即使目录没有注册为数据字典中的数据库,也能成功。(Bug #24732194, Bug #83140)dir_name
如果
InnoDB
统计数据是不正确的,FOUND_ROWS ()
可以返回1甚至当前选择
没有行返回。(Bug #24714857, Bug #83110)ALTER TABLE
在临时表上,如果存在同名的非临时表,则会引发断言。(Bug #24713918, Bug #83117)CMake现在集
-DWITH_NUMA =对
在可能的情况下使用Debian平台。(错误# 24689101)为了更好地提供原子文件创建,Debian打包脚本现在使用coreutil安装命令而不是触摸,修改文件权限,乔恩.(错误# 24688682)
使
DISABLE_SHARED
CMake选项导致编译失败。(Bug #24687701, Bug #83039)这个问题是Bug #24481181的回归。
对于调试版本,无效的
use utf8
注释中的字符创建事件
或改变事件
语句引发断言。这就产生了ER_INVALID_CHARACTER_STRING
错误。(错误# 24679962)的编码
use utf8
字符集允许U+D800和U+DFFF之间的字符有效,尽管它们被保留为代理对,不直接表示字符。现在它们被认为是无效的。(错误# 24672415)的查询可能产生不正确的结果
在哪里
子句包含一个从属子查询,则表在选择列表中的列上有一个辅助索引,其次是子查询中的列,并且集团
或截然不同的
允许查询使用松散索引扫描。(Bug #24671968, Bug #83005)后
重命名表
操作时,未在中更新生成的约束名称TABLE_CONSTRAINTS
.(错误# 24666169)在macOS,
CMake
地址消毒支持不工作。(Bug #24661626, Bug #82976)这个问题是:Bug #23759968的回归。
在macOS 10.11和Xcode 8.0上编译失败。(Bug #24661523, Bug #82975)
应用于不可见索引的索引提示不会产生错误。(Bug #24660093, Bug #82960)
在某些情况下,
INFORMATION_SCHEMA。KEY_COLUMN_USAGE
没有报告所有外键约束的数据。(Bug #24655803, Bug #82961)替换()
在较大的弦上,速度会很慢,而且不会被杀死。(错误# 24652792)的
DebugPrintTest
而且DebugPrintDeathTest
单元测试在Aarch64平台上不能正确处理除零测试。感谢Alexey Kopytov的补丁。(Bug #24624555, Bug #82889)使用GCC 6在FreeBSD上编译失败。(Bug #24619561, Bug #82922)
更改mysqld_safe在最近的MySQL版本中需要
——ledir
,——mysqld
,——mysqld-version
要在命令行上指定的选项;它们不能再在选项文件中指定。这可能导致调用的初始化脚本失败mysqld_safe.类脚本现在传递的值MYSQLD_OPTS
环境变量作为第一个命令行参数mysqld_safe,并将值设置为仅命令行mysqld_safe可能需要的选项值。在使用systemd的平台上MYSQLD_OPTS
值可以设置在/etc/sysconfig/mysqld
用这样一行字:MYSQLD_OPTS="——ledir=/mysqld_ledir——mysqld=my_wrapper "
的价值
MYSQLD_OPTS
还可以包括mysqld选项mysqld_safe要传递给mysqld.(Bug #24619033, Bug #82920)参考文献:这个问题是一个回归:Bug #24464380, Bug #24483092, Bug #25088048, Bug #25378439, Bug #25378565。
SET PERSIST innodb_buffer_pool_size =
的原始值价值
通过innodb_buffer_pool_size
来mysqld-auto.cnf
,而不是新的值。(Bug #24613005, Bug #82905)对于SLES包,安装脚本postamble中的一个拼写错误阻止了一些清理的发生。(Bug #24605300, Bug #82389)
在升级数据目录时,服务器写入错误日志的一些消息缺少标准时间戳和进程ID信息。(Bug #24600054, Bug #82874)
的会话值是可能的
Last_query_cost
而且Last_query_partial_plans
在初始化之前要访问的状态变量。(错误# 24596263)警告发生在
创建表……选择
可能导致服务器退出。(错误# 24595992)为
加载数据
用于将数据插入到可更新视图中,验证列是否实际上可更新的检查缺失了。(错误# 24595937)当确定性函数返回时,服务器可以解引用空指针
量变
在子查询中使用。(错误# 24595581)因…而改变的景色
改变观点
如果语句失败并发生错误,则可能被丢弃。(错误# 24594140)转换
JSON
如果文档很大并且包含许多有符号整数,那么文档转换为字符串的速度可能会比较慢。(错误# 24586888)数据字典可以包含临时表(名称以
# sql
).这些桌子暴露在INFORMATION_SCHEMA
查询和通过显示
语句。这可能会导致, mysqldump而且mysqlpump在试图转储这些表时失败。临时表现在被隐藏到INFORMATION_SCHEMA
查询和显示
语句。(Bug #24580599, Bug #24571427)定义视图时,不考虑定义的字符集。如果这与默认字符集不同,视图中使用的表名可能无法识别,导致视图被标记为无效。
对于调试构建,如果在解析类时发生错误,则可能引发断言
改变观点
语句,诊断区域为空。(错误# 24580586)为
加载数据
在MySQL 5.6中,如果输入数据的列值太多,只会产生一个警告,而不是一个错误。现在出现一个错误。(Bug #24577194, Bug #82830)使用
设置保存
与global_log
系统变量无效。(Bug #24569624, Bug #82807)性能模式
variables_info
表,VARIABLE_SOURCE
在没有变量的选项文件中指定的一些布尔选项没有正确设置列。(错误# 24567960)的
.mylogin.cnf
选项文件是供客户机程序使用的,但是服务器也读取了它。服务器不再读取它。(错误# 24557925)使用
boost::空间
被替换为std::空间
因为前者会导致链接错误。(Bug #24556808, Bug #82781)X Plugin的编译选项与其他插件不同。(Bug #24555770, Bug #82777)
当填充
variables_by_thread
表中,性能模式可以尝试访问正在去初始化的其他线程的会话变量。(错误# 24555658)没有适当权限的用户可以加载和卸载服务器组件。(错误# 24528148)
在Debian/Ubuntu平台上,MySQL的systemd启动脚本被忽略
datadir
设置/etc/mysql/my.cnf
.(Bug #24517024, Bug #82709)与一个
锁表
语句有效时,表上具有触发器的DML语句可能导致服务器退出。(错误# 24506766)运行帐户管理语句的并行从线程可能由于处理特权缓存锁时的竞争条件而失败。(错误# 24503606)
执行
ALTER TABLE
在与其他DDL操作同时具有触发器的表上,可能会导致数据字典损坏。(错误# 24497803)如果mysqladmin关闭在确定服务器进程ID文件时遇到错误,则显示错误消息,但没有明确指出该错误是非致命的。它现在指示继续执行。(错误# 24496214)
为
null_audit
插件,设置null_audit_event_record
系统变量不正确可能导致服务器退出。的内部设置此变量null_audit
插件,所以它现在是只读的。(Bug #24493829, Bug #82670)在某些情况下,像
IF(col_name > 5000, (1 / col_name), 5000)
可以得到一种小数(4)
,这会截断结果。(Bug #24492965, Bug #82668)用于。的数据结构
补零
列可能会经历内存损坏,最终导致服务器退出。(错误# 24489302)操作的mysql-multi.server.sh脚本是基于
my.cnf
在数据目录中。那个选项文件不再使用了,所以mysql-multi.server.sh被移除。(错误# 24487870)如果发生以下情况,查询可能产生不正确的结果
MIN ()
或MAX ()
在引用索引列的子查询中。(Bug #24484060, Bug #82638, Bug #24657798, Bug #82965)显示触发
在Linux和Windows上输出顺序可能不同。(Bug #24482919, Bug #82637)mysqld_safe试图读
my.cnf
在数据目录中,尽管这不再是标准的选项文件位置。(错误# 24482156)在运行mysql_upgrade执行一个
安装组件
语句可能导致服务器退出。(错误# 24453571)正则表达式模式与大字符串的匹配可能会由于内存分配失败或整数溢出而导致服务器退出。(Bug #24449076, Bug #24449090)
使用MySQL 5.7数据目录启动服务器时,由于缺少
default_roles
而且role_edges
系统表。(错误# 24447771)报告错误错误
创建表
类的大值语句连接
表选择。该值现在限制为1024字节。(错误# 24437124)可以提出断言,如果
ER_LOCK_WAIT_TIMEOUT
的执行过程中发生错误显示创建触发器
.(Bug #24420809, Bug #82483)常量折叠对于大的无符号整数可能产生不正确的结果。(Bug #24401273, Bug #82425)
使用非常长的子分区名可能导致服务器退出。现在,大于64个字符的分区或子分区名称将生成一个
ER_TOO_LONG_IDENT
错误。(Bug #24400628, Bug #82429)的
Gis_wkb_vector < Gis_point >
复制构造函数没有显式实例化,导致Intel编译器出现构建问题。(Bug #24397833, Bug #82358)通过利用这种方式,特权升级成为可能
修理表
使用临时文件。(错误# 24388746)与
行
模式二进制日志记录,组件安装时抛出断言。(错误# 24343582)修复了与角色相关的潜在内存泄漏。(错误# 24337928)
转换为半连接并以编程方式生成的子查询
INFORMATION_SCHEMA
表可能错误地处理INFORMATION_SCHEMA
表为空。在bug修复之前的解决方法:
设置optimizer_switch = ' semijoin = off”;
(Bug #24287772, Bug #82214)mysqldumpslow日志含义慢速查询日志中时间戳解析失败;它没有被更新以跟踪日志时间戳格式的更改。(错误# 24007040)
Ubuntu包安装的AppArmor配置文件缺少一个允许的条目
libnuma
读一/ sys
分层路径,导致服务器启动失败。(错误# 23854929)优化器可能不正确地处理
RAND ()
作为受半连接转换影响的查询的常量。(错误# 23854015)对于调试构建,位操作符的不等长二进制操作数可能引发断言。(错误# 23853628)
如果事务回滚请求只回滚一条语句而不是整个事务,则任何将另一个操作附加到事务的尝试都会引发断言。(Bug #23753319, Bug #82143)
STRCMP ()
对于与utf8mb4_unicode_ci
排序可能返回不同的结果命令
.STRCMP ()
已经更正。(Bug #23752284, Bug #82132)的完整逻辑备份mysqlpump如果启用了gtid,则无法恢复。
要启用对写入转储文件的GTID信息的控制,mysqlpump现在有一个
——set-gtid-purged
选项,用于指示是否添加集
@@GLOBAL。
gtid_purged
语句的输出。(错误# 23748432)无限递归可以发生,如果
audit_log
插件在处理错误时发出错误信号。(Bug #23717558, Bug #82052)由
audit_log
插件的错误日志MYSQL_AUDIT_CONNECT
事件失败现在也打印底层错误原因,以帮助调试。(错误# 23710632)MySQL现在使用
readdir ()
而不是readdir_r ()
.后者自那以后就被弃用了glibc
导致MySQL的调试版本和使用GCC 6.1的版本失败。此外,修正了导致GCC 6.1编译器警告的几个问题。(Bug #23708395, Bug #24437737, Bug #82515, Bug #24459890, Bug #82583, Bug #25103242)
力指数
是无效的SELECT COUNT (*)
查询。(Bug #23596760, Bug #81854)在启动期间,服务器为Unix套接字文件创建一个锁文件(例如,
mysql.sock.lock
的锁文件mysql.sock
).如果服务器未能将进程ID写入锁文件,则无法删除该文件,这可能导致后续服务器启动失败,直到手动删除该文件。(Bug #23582603, Bug #81838)对于调试构建,使用
Item_func_spatial_collection: val_str ()
可以提出一个主张。(错误# 23573720)对于连接类中的审计日志事件,则
connection_type
值仅用于连接事件。该值现在可以在连接、断开连接和更改用户事件中使用。(错误# 23541550)的
audit_log
插件audit_log_filter_remove_filter ()
函数将导致服务器退出零
论点。(错误# 23522793)尝试配置MySQL时不使用
联邦
存储引擎故障CMake-DWITH_FEDERATED_STORAGE_ENGINE = 0
选项没有工作)。(Bug #23508203, Bug #81665)在Solaris中,
gettimeofday ()
可能返回无效值并导致服务器关闭。(错误# 23499695)的
keyring_file
当文件不存在时,插件可以尝试向其存储文件写入键。要确保仅当存在正确的存储文件时才刷新密钥,keyring_file
现在在文件中存储密匙环的SHA-256校验和。在更新文件之前,插件验证文件是否包含预期的校验和。(错误# 23498254)开始组复制
使用堆叠Srv_session
并且没有返回到正确的线程。开始组复制
而且停止组复制
现在已从允许的命令列表中删除。(错误# 23337984)导致元组大于的联合查询
max_join_size
可能导致服务器退出。(错误# 23303485)授权表结构不正确,可能导致用户管理操作出现问题。修复这个问题的结果是,对于修改授权表的任何操作,服务器现在都会检查表是否具有预期的结构,如果没有则产生错误。mysql_upgrade必须运行以将表更新为预期的结构。(Bug #23295423, Bug #25095876, Bug #25448037)
ST_ExteriorRing ()
可能会导致服务器退出,因为被传递了一个被认为是有效的无效WKB字符串。(错误# 23280574)对于调试构建,未能准备XA事务的分支可能导致服务器退出。(Bug #23264552, Bug #81375)
优化器可以进行选择
裁判
访问二级索引,而不是范围
主键上的访问,即使成本较高。(Bug #23259872, Bug #81341)磁盘已满错误消息的实例包含错误的错误代码。(Bug #23247332, Bug #81346)
的查询
命令
而且限制
,优化器跟踪没有记录优化器到不同索引的切换。(Bug #23227428, Bug #81250)使用的锁的不当处理
version_tokens
插件和用户定义函数可能导致服务器退出,如果UDF被调用version_tokens
被卸载。(错误# 23210850)在存储程序中执行的DML语句中的某些错误可能被错误处理并导致服务器退出。(错误# 23209989)
的
报价()
函数可能分配过多的内存。的限制max_allowed_packet
现在强制使用Bytes并返回零
并对试图分配更多的操作发出警告。(错误# 23195404)对于一些嵌套很深的表达式,优化器无法检测到堆栈溢出,导致服务器退出。(错误# 23135667)
对于通过X插件创建的会话,不正确的线程连接/分离可能导致服务器退出。(错误# 23057045)
当试图定位数据目录时,mysqld_safe错误地认为
美元MY_BASEDIR_VERSION / var
作为一个可能的地点。(Bug #23013510, Bug #80866)对于某些生成的列,用于表重构的列定义的字符集转换可能会更改列值。(错误# 22991924)
OS X DMG安装程序没有正确设置密匙环插件安装。(错误# 22991650)
如果查询执行了
集团
对于派生表的列,且选择列表包含混合了聚合函数和组列的表达式,如果ONLY_FULL_GROUP_BY
启用SQL模式。(Bug #22924183, Bug #80726)从MySQL 5.6到5.7的二进制(就地)升级,然后执行数据导出mysqlpump导致了
的默认值无效。
尝试重新加载转储文件时出错。(Bug #22919028, Bug #80706)date_column
将长浮点数转换为整数失败可能导致服务器退出。(错误# 22907691)
在Unix和类Unix系统上,由指定
——日志错误
没有选项值的错误创建在PID文件的目录中,如果——pid文件
选项也被赋予。(错误# 22900354)的
main.log_tables-big
测试用例在高负载主机上可能不稳定。感谢Laurynas Biveinis的补丁。(Bug #22874167, Bug #80607)通过X Plugin执行的SQL语句没有被纳入性能模式。(错误# 22859462)
的
rpl.rpl_key_rotation
测试用例没有正确地与主服务器同步。感谢Laurynas Biveinis的补丁。(Bug #22838596, Bug #80531)指数下降
的索引前缀长度处理不一致可能导致操作失败文本
类型列(非常小的文本串
等等)。这个修正的结果是对的行为有更多的限制
创建表
而且创建索引
指定索引前缀超过最大列数据类型大小的语句:对于非唯一索引,要么发生错误(如果启用了严格的SQL模式),要么将索引长度减少到最大列数据类型大小范围内并产生警告(如果没有启用严格模式)。
对于唯一索引,无论SQL模式如何,都会发生错误,因为减少索引长度可能支持插入不满足指定惟一性要求的非惟一项。
(Bug #22740093, Bug #80392)
对存储例程名的元数据锁定是在区分大小写的基础上执行的,但例程名不区分大小写。(错误# 22700385)
使用聚合函数的查询
截然不同的
可能产生不正确的结果。(Bug #22686994, Bug #80310)的
innodb_numa_interleave
在一些未启用numa的系统上,系统变量错误可用。感谢Tomislav Plavcic的补丁。CMake现在设置默认值
WITH_NUMA
值,根据当前平台是否具有NUMA
支持。对于没有NUMA支持的平台,CMake表现如下:如果没有NUMA选项(通常情况),CMake正常继续,只产生这样的警告:NUMA库丢失或所需版本不可用
与
-DWITH_NUMA =对
,CMakeNUMA库丢失或所需版本不可用
(Bug #22678436, Bug #80288)
某些SQL查询涉及复杂
在哪里
条件可能导致警告、内存损坏或服务器退出。(错误# 22671573)在使服务器脱机时,性能模式中的竞态条件可能导致服务器退出。(错误# 22551677)
在macOS上,如果一个带有关联触发器的表被重命名为一个包含小写字母和大写字母的新名称,
下降触发
因为触发器导致了ER_NO_SUCH_TABLE
表错误。(Bug #22512899, Bug #79873)在
MYSQL_FIELD
C API结构的org_table
派生表的值*
,这可能导致依赖此值的查询失败。的org_table
如果列是从视图中选择的,org_table
视图名称。如果从派生表中选择列,org_table
命名基表。如果派生表包装了视图,org_table
仍然为基表命名。如果列是一个表达式,org_table
是空字符串。(Bug #22364401, Bug #79641)对于RPM包,默认为
错误日志
部署的位置/etc/my.cnf
文件的位置与已安装的logrotate脚本,导致logrotate失败。(错误# 22322685)性能模式
events_statements_summary_by_digest
对于相同的语句摘要和模式组合,表可以包含多个行,而不是预期的单个(惟一的)行。(Bug #22320066, Bug #79533)对于性能模式系统和状态变量表,用不同于
use utf8
可能被截断或不正确。(错误# 22313205)对于调试版本,使用带有无效UTF-8名称的表达式属性更改表分区表达式会引发断言。(错误# 22152229)
对象的表中执行插入后
AUTO_INCREMENT
列,然后执行选择
操作,LAST_INSERT_ID ()
的值返回正确的值,但是mysql_insert_id ()
C API函数被重置为0。(Bug #22028117, Bug #78778)在Ubuntu上,从社区包升级到商业包时显示错误消息,使它看起来好像mysqld而且my_print_defaults尚未安装。那些信息是假的,已经被封了。(错误# 21807248)
与
use_index_extensions
国旗的optimizer_switch
系统变量禁用,一些选择不同的
查询可能返回不正确的结果。(Bug #21749123, Bug #78244)中的无效字符串值
在哪里
一个条款更新
语句,导致使用索引扫描而不是范围扫描。对于索引中不存在的值,这可能会慢得多。现在优化器确定这是一个”不可能的在哪里
”条件。(Bug #21032418, Bug #76933)Debian包缺少一个与AppArmor相关的包含文件,并且被错误地标记为依赖于AppArmor(这使得不可能通过卸载来禁用AppArmor)。(错误# 20768958)
当
automatic_sp_privileges
系统变量被启用,它没有对匿名用户产生预期的效果。(错误# 20266641)优化器
resolve_const_item ()
函数Item_decimal ()
最后两个参数顺序不对。(错误# 19062566)一个合适的
ALTER TABLE
添加对象时,操作报告错误日期
或DATETIME
柱在这些条件下:a)柱是非空
并且没有提供默认值;b)严格和NO_ZERO_DATE
启用SQL模式;C)桌子不是空的。一个
ALTER TABLE
对象时,操作失败,出现错误而不是警告日期
或DATETIME
柱在这些条件下:a)柱是非空
并且没有提供默认值;b)启用了严格的SQL模式NO_ZERO_DATE
SQL模式未启用;C)桌子不是空的。(错误# 16888677)插入一个
时间
,日期
,或时间戳
值的小数秒部分转换为具有相同类型但小数位数较少的列,会导致舍入。这与MySQL 5.5不同,后者使用截断而不是舍入。若要启用对此行为的控制,则需要一个新的TIME_TRUNCATE_FRACTIONAL
可使用SQL模式。默认是使用舍入。如果启用了此模式,则会发生截断。(Bug #16583910, Bug #68760)不是在
当使用内部表的索引前缀时,子查询可能产生不正确的结果。(错误# 13915291)在非linux Unix系统上,mysql.server启动脚本使用Linux命令pidof而不是pgrep.(Bug #13788154, Bug #64342)
启动多个实例mysqld_safe在服务器异常退出后可能会导致一个mysqld_safe杀死另一个实例。由于修复了错误,因此
mysqld_safe.pid
文件不再使用。(Bug #11751149, Bug #41908)的
——帮助
消息mysqld_safe被更正为提到——已
,——defaults-file
,——defaults-extra-file
如果给出了Options,则必须是第一个参数。(Bug #11745176, Bug #11192)每个级别(具有固定的深度)的XML解析器位置堆栈的边界检查使用数组的大小作为上限,因此误差为1。这是通过将允许的深度减少1来解决的,这实际上与位置堆栈中元素的最大数量相匹配。(Bug #83871, Bug #25111907)
参考文献:参见Bug #14040071, Bug #15948580。