此版本的已知限制:
使用 Visual Studio 2008 在 Windows 上从源构建 MySQL 失败并出现标识符未找到
错误。更高版本的 Visual Studio 不受影响。解决方法是将CMake构建选项
设置INNODB_PAGE_ATOMIC_REF_COUNT
为
OFF
. 这个选项是ON
默认的。
如果您有InnoDB
带有全文搜索索引的表,并且您正在从 MySQL 5.6.10 升级到 MySQL 版本(包括 MySQL 5.6.18),则服务器将在升级后无法启动(错误#72079)。此错误已在 MySQL 5.6.19 中修复。解决方法是在升级之前删除全文搜索索引,并在升级完成后重建全文搜索索引。
InnoDB: 新的全局配置参数,
innodb_status_output
和innodb_status_output_locks
,允许您动态启用和禁用标准InnoDB
Monitor 和InnoDB
Lock Monitor 以进行定期输出。通过创建和删除特殊命名的表来启用和禁用定期输出的监视器已被弃用,并且可能会在未来的版本中删除。有关其他信息,请参阅 InnoDB 监视器。-
以前,
ALTER TABLE
在 MySQL 5.6 中可以更改表,以便结果具有 5.5 和 5.6 格式的时间列。现在ALTER TABLE
将旧的时间列升级到 5.6 格式,用于ADD COLUMN
、CHANGE COLUMN
、MODIFY COLUMN
、ADD INDEX
和FORCE
操作。INPLACE
由于必须重建表,因此 无法使用该算法完成此转换,因此ALGORITHM=INPLACE
在这些情况下指定会导致错误。ALGORITHM=COPY
必要时 指定。当
ALTER TABLE
确实产生时间格式转换时,它会生成一条消息,该消息可以用SHOW WARNINGS
: 显示TIME/TIMESTAMP/DATETIME columns of old format have been upgraded to the new format
。(漏洞#17246318) CMake现在支持 指定默认 值的选项。如果未指定,则该值默认为in 。感谢 Honza Horak 提供补丁。(漏洞 #68338,漏洞 #16316074)
-DTMPDIR=
dir_name
tmpdir
P_tmpdir
<stdio.h>
创新数据库;复制: 尝试在
innodb_force_recovery
大于0
会返回一条神秘的错误消息: ERROR(1030) HY000: Got error -1 from storage engine。错误消息已更改为: ERROR HY000: Operation not allowed when innodb_force_recovery > 0。复制选项,例如relay_log_info_repository=TABLE
和master_info_repository=TABLE
将信息存储在InnoDB
. 当innodb_force_recovery
大于 0 时,无法更新复制表,这可能会导致复制管理命令失败。(错误#17287443,错误#69907)创新数据库;复制: 使用设置为 1 的插件(请参阅 InnoDB memcached 插件) 会导致服务器泄漏内存。(错误#70757,错误#17675622)
InnoDB
memcached
innodb_api_enable_binlog
InnoDB: 布尔模式的全文搜索查询会在解析期间导致内存访问冲突。(漏洞 #17978763)
InnoDB: 当通过
ALTER TABLE
操作添加新索引时,不是只保存表级统计信息和新索引的统计信息,而是InnoDB
保存整个表的统计信息,包括表的其他索引。此行为会降低ALTER TABLE
性能。(错误#17848838,错误#16511145)InnoDB: 由于解析器错误,包含子表达式的全文搜索查询可能会返回错误的结果。(错误号 17840768)
InnoDB: innochecksum工具没有使用特定于 Windows 的 API 来检索文件大小信息,这导致在超过 MySQL 5.6 innochecksum 2GB 文件大小限制时出现不正确的错误消息(错误: 找不到ibdata1) 。innochecksum现在支持 MySQL 5.6 和 MySQL 5.7 中大于 2GB 的文件。(漏洞 #17810862,漏洞 #70936)
InnoDB: 由于 Bug#17371537 的修复引入了回归,当使用默认的 memcached 引擎作为数据的后备存储而不是
InnoDB
. (漏洞 #17800829)InnoDB:
InnoDB
初始化失败后会报错的操作系统错误码。(缺陷 #17788055,缺陷 #70867)InnoDB: 在使用丢弃表空间后操作表
ALTER TABLE ... DISCARD TABLESPACE
可能会导致严重错误。(漏洞 #17700280)InnoDB: 持久优化器统计信息会由于闩锁争用而导致停顿。(缺陷 #17699331,缺陷 #70768)
InnoDB:由于“未结束”令牌 发生
InnoDB
全文搜索失败应传递字符串和字符串长度以进行字符串比较。(漏洞 #17659310)InnoDB: 在具有全文搜索索引的表上
MATCH() AGAINST()
,使用长字符串作为参数的查询AGAINST()
可能会导致错误InnoDB
(漏洞 #17640261)InnoDB: 在调试版本中,页面读取期间的合并插入缓冲区会导致内存访问冲突。(漏洞#17561188)
InnoDB: 在
sync0rw.ic
,rw_lock_x_lock_func_nowait
会不必要地调用os_thread_get_curr_id
. (缺陷 #17509710,缺陷 #70417)InnoDB:在memcached执行 DML 操作时 截断memcached
InnoDB
表 会导致严重错误。(漏洞 #17468031)InnoDB:
RENAME TABLE
如果在ALTER TABLE
,RENAME TABLE
序列 之后立即发生崩溃,服务器可能无法重新启动(漏洞 #17463290)InnoDB: 如果在文件中更新表空间数据文件路径
.isl
,然后执行崩溃恢复,则从.isl
文件中读取更新的表空间数据文件路径,但SYS_DATAFILES
表不会不更新。崩溃恢复后,该SYS_DATAFILES
表现在已更新为新的数据文件路径。(漏洞 #17448389)InnoDB: 尝试将表重命名为丢失的数据库会导致严重错误。(漏洞 #17447500)
InnoDB: 如果 file-per-table 表空间数据文件的第一页(第 0 页)已损坏,即使双写缓冲区包含该页的干净副本,恢复也会停止。(错误#17335427、错误#70087、错误#17341780)
InnoDB: memcached
InnoDB
自述 文件 (README-innodb_memcached
) 错误地指出 libevent 1.6.0 静态链接到守护进程memcached。libevent 的捆绑版本是 1.4.12,而不是 1.6.0。(错误#17324419,错误#70034)InnoDB: 算法未能减少自动增量值。(错误#17250787,错误#69882)
ALTER TABLE
INPLACE
InnoDB: 评论中
btr0cur.cc
错误地指出btr_cur_pessimistic_update()
并且btr_cur_optimistic_update()
会接受 NULL 值。(错误#17231743,错误#69847)InnoDB:
dict_table_schema_check
会dtype_sql_name
不必要地调用。(漏洞 #17193801,漏洞 #69802)InnoDB: 该函数
os_file_get_status
不适用于原始设备。(错误#17023438,错误#69424)InnoDB: 在崩溃恢复期间,不正确的事务活动时间将导致回滚未提交的事务。(错误#16936961,错误#69438)
InnoDB:用于记录诊断的 堆块调试信息 (
file_name
,lineno
此信息应仅出现在调试版本中。(漏洞 #16924719,漏洞 #69422)InnoDB: 在线
ALTER TABLE
操作会消耗比预期更多的内存。在联机ALTER TABLE
操作期间,为创建或重建的每个索引创建一个包含头缓冲区和尾缓冲区的联机日志缓冲区。ALTER TABLE
尾缓冲区是写入器上下文,仅当操作正在进行时才需要对索引进行并发写入操作头缓冲区是读取器上下文,仅在日志应用阶段需要。为了减少内存消耗,现在在索引上运行第一个 DML 语句时分配尾缓冲区,而头缓冲区仅在日志应用阶段分配并在之后释放。(错误#16868967、错误#69325、错误#17911720)InnoDB: 在同一操作中重命名列同时添加或删除列
ALTER TABLE
会导致错误。(漏洞 #16864981)-
InnoDB: 在 Windows 上,全文搜索 (FTS) 对象 ID 不是预期的十六进制格式。(漏洞 #16559254)
参考资料:另请参阅:Bug #16559119。
-
InnoDB: 从缓冲池中获取和释放页面以及跟踪页面状态是昂贵且复杂的操作。在错误修复之前,这些操作是使用页面互斥执行的。使用页互斥锁来跟踪几件事情是昂贵的并且不能很好地扩展。错误修复将页面的获取和释放跟踪(使用中状态)与页面 I/O 状态跟踪分开。现在在可用的情况下使用原子来跟踪获取和发布。
为了可移植性,一个新的CMake构建选项
INNODB_PAGE_ATOMIC_REF_COUNT
(默认ON
)可用于在原子支持不可用的平台上禁用原子页面引用计数。当启用原子页面引用计数时(默认),“[Note] InnoDB: Using atomics to ref count buffer pool pages
”会在服务器启动时打印到错误日志中。如果禁用原子页面引用计数,则打印“[Note] InnoDB: Using mutexes to ref count buffer pool pages
” 。(缺陷 #16249481,缺陷 #68079) InnoDB: 表重命名错误将出现在输出
LATEST FOREIGN KEY ERROR
部分SHOW ENGINE INNODB STATUS
(缺陷 #12762390,缺陷 #61746)InnoDB:
UNIV_SYNC_DEBUG
在 Bug#16720368 的修复中被禁用univ.i
,现在已启用。(缺陷 #69617,缺陷 #17033591)-
分区: 使用
index_merge
优化的查询(请参阅索引合并优化)在针对按 分区的表运行时可能返回无效结果HASH
。(错误#17588348,错误#70588)参考资料:另请参阅:Bug #16862316、Bug #17648468、Bug #18167648。
分区:当自上次HA_ERR_KEY_NOT_FOUND错误 以来没有分区返回行时 ,在用于按排序顺序返回行的优先级队列中使用未初始化的内存可能会导致服务器崩溃。(漏洞 #17401628)
复制: 当二进制日志 I/O 缓存恰好增长到 32768 字节并且当前事务之前有一个大小大于 32768 字节的事务时,事件在写入二进制日志时可能会损坏。(漏洞#17842137)
复制: 创建和删除大量临时表可能会导致内存消耗增加。(漏洞 #17806014)
Replication: 当
log_warnings
大于1时,master打印二进制日志转储线程信息——包含slave服务器ID、二进制日志文件名和二进制日志位置——在mysqld.1.err
. 在这种情况下,大于 20 亿的从服务器 ID 打印为负值。(错误#17641586,错误#70685)-
复制: mysqlbinlog
--verbose
在遇到二进制日志中的损坏行事件时失败。这样的行事件也可能导致从站失败。(漏洞#17632978)参考资料:另请参阅:Bug #16960133。
-
复制: mysqlbinlog没有正确解码
DECIMAL
基于行的二进制日志中的值。这可能会导致为DECIMAL
列打印出无效值。(漏洞 #17544169)参考资料:另请参阅:Bug #14309019。
-
复制: 在某些情况下,当它的值本应大于零时,它
Seconds_Behind_Master
的输出SHOW SLAVE STATUS
(漏洞#17233214)参考资料:另请参阅:Bug #16579028。
复制: 二进制日志中的无效事件偏移量并不总是得到正确处理,这可能导致复制失败。(漏洞 #16736412,漏洞 #69087)
复制: 半同步复制插件被 DDL 语句调用两次,
Rpl_semi_sync_master_yes_tx
每次执行此类语句时递增 2 而不是 1。(错误#70410,错误#17509011)Microsoft Windows: 在 Windows 上,
--local-service
服务器选项不起作用,并且未显示在--help
消息中。(缺陷 #69637,缺陷 #17049656)-
FORCE INDEX [FOR ORDER BY] (
不适用于连接。index_name
)此错误的修复还更改了为创建的警告
EXPLAIN
。如果在查询中指定了{IGNORE|USE|FORCE} INDEX
它,它现在也会打印 ,而不是只 打印。FOR {GROUP BY|ORDER BY|JOIN}
(漏洞 #17889511) 启用压缩客户端/服务器协议后,Performance Schema 语句检测可以引发断言。(漏洞#17794846)
filesort
如果在记录属性更改时未能调整其主缓冲区的大小, 则可能会引发断言。(漏洞#17757914)在某些情况下,
UNIX_TIMESTAMP()
可以NULL
在应该返回 0 时返回。(缺陷 #17728371)只有在成功检索所有行后,才会释放用于索引合并访问方法的缓存。操作中断或失败导致文件描述符泄漏。(漏洞 #17708621)
使用没有值的mysqldump
--set-gtid-purged
选项会导致mysqldump崩溃。(漏洞 #17650245)Performance Schema 语句事件线程之间的竞争条件导致服务器退出。(漏洞 #17637970)
-
在需要将子查询中的聚合表达式解析为外部查询的视图定义中,从视图中进行选择可能会导致服务器退出。(漏洞 #17547804)
参考:这个问题是 Bug #16436383 的回归。
访问连接缓冲区时的寻址错误可能会产生无效结果或服务器退出。(漏洞 #17513341)
mysql_config错误地包含了一些生成编译器警告输出的标志。(漏洞 #17400967)
启用半连接优化后,由于对中间查询块中列的引用解析不正确,带有嵌套子查询的查询可能会导致服务器退出。(漏洞#17398972)
在某些情况下,优化器将固定长度的临时
MyISAM
表而不是可变长度的临时表写入磁盘。(漏洞 #17231940)启用该
validate_password
插件可能会导致mysql.user
表中存储不正确的密码哈希值。(漏洞 #17065383)对于使用插件验证的帐户
sha256_password
,在密码过期后设置密码不会清除密码过期标志。(漏洞 #16872181)在 OS X 10.7 上,涉及的竞争条件
vio_shutdown()
和基于选择的实现vio_io_wait()
可能会导致服务器退出。(错误#16354789,错误#17733393)源代码中使用的示例 URL 中的主机名已替换为 example.com 域中的名称,该域是 IANA 用于此目的的。(漏洞 #15890092)
对于
utf8
和utf8mb4
字符串,处理函数不必要地调用了 Unicode 转换函数。(漏洞 #14057034)如果MySQL
-W
配置为-DWITH_INNODB_MEMCACHED=1
. (漏洞 #13898319)在某些情况下,使用无效的 XPath 表达式调用
ExtractValue()
函数可能会导致服务器出现故障。(漏洞 #12428404,漏洞 #61065)使用非多字节算法跳过多字节字符串中的前导空格可能会导致服务器退出。(错误#12368495,错误#18315770)
ONLY_FULL_GROUP_BY
启用 SQL 模式后,如果查询在视图中,则在子句中使用 从子GROUP BY
查询派生的列的查询会FROM
失败并出现错误。column isn't in GROUP BY
(漏洞 #11923239)mysqldump --single-transaction为每个转储表获取元数据锁,但直到转储操作完成才释放它们。因此,即使在转储表本身之后,转储表上的其他 DDL 操作也会被阻塞。mysqldump现在尝试更早地释放元数据锁。(错误#71017,错误#17862905)
sql_resolver.cc
指的是本应受保护的分区代码#ifdef
,即使 MySQL 配置为-DWITH_PARTITION_STORAGE_ENGINE=OFF
. (错误#71010,错误#17876794)Coverity 静态分析工具发现的几个问题已得到修复。感谢 Honza Horak 提供补丁。(错误#70830,错误#17760511)
Performance Schema 检测 API
mysql_cond_timedwait()
调用的原型被修复为与pthread_cond_timedwait()
. 此修复仅影响第三方插件的实施者。(错误#70628,错误#17702677)IF()
如果子句中的谓词 与转换为半连接的子查询WHERE
相结合, 查询可能会返回不正确的结果 。OUTER JOIN
(解决方法是使用禁用半连接SET optimizer_switch='semijoin=off';
)(错误 #70608,错误 #17600176)涉及连接或子查询的 Performance Schema 表的复杂更新无法更新每一行。(错误#70025,错误#17309657)
Performance Schema 表中的某些文件
file_instances
未被删除,因为未检测文件删除操作。(缺陷 #69782,缺陷 #17209750)对于用
--basedir
选项指定的路径, mysql_plugin试图取消链接路径而不是释放存储路径的内存。(缺陷 #69752,缺陷 #17168602)-
无法使用在视图定义的
ORDER BY
子句中引用别名的SELECT
子句查询视图,除非视图中的所有列都在选择列表中命名。为了处理这个问题,服务器现在以不同的方式将视图写入
.frm
存储视图定义的文件中。如果您遇到刚刚描述的视图评估错误,请删除并重新创建视图,以便.frm
文件包含更新的视图表示。(缺陷 #69678,缺陷 #17077305) 对于
utf8_bin
排序规则,可能会产生不正确的排序。(缺陷 #69005,缺陷 #16691598)ORDER BY LOWER(
col_name
)-
全文搜索与派生表(
FROM
子句中的子查询)相结合导致服务器退出。现在,如果全文操作依赖于派生表,服务器会产生一个错误,指示无法对物化表进行全文搜索。(缺陷 #68751,缺陷 #16539903)
NULL
当最后读取的行包含一个值 时,COUNT(DISTINCT) 有时会产生不正确的结果。(错误#68749、错误#16539979、错误#71028、错误#17867117)一些脚本显示有关报告错误的位置的过时信息。(漏洞 #68742,漏洞 #16530527)
当本地表包含单个行并且该行可以连接到表中的行时, 更新
FEDERATED
表 导致服务器退出。(缺陷 #68354,缺陷 #16324629)UPDATE... JOIN
FEDERATED
由于不正确的约束,使用gcc但没有 gcc
make_atomic_cas_body64
内置函数的 IA32 实现可能会被错误编译。该补丁还导致 MySQL 在使用Clang编译时使用内置原子。(缺陷 #63451,缺陷 #17242996)mysql_install_db
参考过时的 mysqlbug脚本来报告问题。它现在指的是http://bugs.mysql.com/。(缺陷 #29716,缺陷 #11746921)