-
ALTER TABLE
TIME
如果表中包含的时间列被发现采用 5.6.4 之前的格式( 、DATETIME
和TIMESTAMP
不支持小数秒精度的列),则没有利用可能适用于要执行的操作的快速更改。相反,它通过重建来升级表。两个新的系统变量可以控制升级此类列并提供有关它们的信息:avoid_temporal_upgrade
控制是否ALTER TABLE
隐式升级发现采用 5.6.4 之前格式的时间列。默认情况下禁用此变量。启用它会导致ALTER TABLE
不重建时间列,从而能够利用可能的快速更改。show_old_temporals
控制SHOW CREATE TABLE
输出是否包括注释,以标记被发现为 pre-5.6.4 格式的时间列。COLUMN_TYPE
表列的 输出INFORMATION_SCHEMA.COLUMNS
受到类似的影响。默认情况下禁用此变量。
这两个变量都已弃用,并将在未来的 MySQL 版本中删除。(错误#72997,错误#18985760)
-
MySQL Enterprise Edition 现在包括 MySQL Enterprise Firewall,这是一个应用程序级防火墙,使数据库管理员能够根据与接受的语句模式白名单的匹配来允许或拒绝 SQL 语句的执行。这有助于加强 MySQL 服务器抵御 SQL 注入等攻击,或试图通过在合法查询工作负载特征之外使用它们来利用应用程序。
在防火墙上注册的每个 MySQL 帐户都有自己的语句白名单,从而可以为每个帐户量身定制保护。对于给定的帐户,防火墙可以在记录或保护模式下运行,以接受可接受的语句模式的培训或防止不可接受的语句。有关详细信息,请参阅 MySQL 企业防火墙。
CMake支持已更新以处理 CMake版本 3.1。(缺陷号 20344207)
服务器现在在将初始“开始”消息 写入错误日志时包括其版本号,以便更容易判断错误日志输出适用于哪个服务器实例。
version
该值与系统变量中可用的值相同 。(缺陷 #74917,缺陷 #20052694)-
Performance Schema 以前完成的语句摘要现在在 SQL 级别完成,而不管 Performance Schema 是否已编译并可用于服务器操作的其他方面,这些方面可能会从中受益。可用于摘要的默认空间为 1024 字节,但可以在服务器启动时使用
max_digest_length
系统变量进行更改。参考资料:另请参阅:Bug #18304086、Bug #20015246。
InnoDB:对临时表 的
TRUNCATE TABLE
操作引发了断言。从 重新加载时,临时表对象未完全构建SYS_TABLES
。(缺陷 #20527363,缺陷 #72080)InnoDB: 全文短语搜索返回了错误的结果。标记新插入的行时错误处理了空字符串。(缺陷 #20465273,缺陷 #75755)
-
InnoDB: 优化
FULLTEXT
索引引发了断言。FULLTEXT
索引 的最后一个优化词 定义为 CHAR(50)CONFIG
表value
当最后优化的单词长度超过 50 个字符时,会引发断言。从CONFIG
表value
列定义为 CHAR(200)。如果您的
innodb_ft_max_token_size
设置大于 50,建议您InnoDB
FULLTEXT
在升级到 MySQL 5.6.24 或 MySQL 5.7.6 后重新创建现有索引以避免此问题。FULLTEXT
升级到 MySQL 5.6.24 或 MySQL 5.7.6 后创建的索引不受影响。(缺陷号 20418326) InnoDB: 一个
InnoDB
memcachedextra_col_value[]
数组在没有检查分配标志的情况下被释放,导致服务器退出。(缺陷号 20400373)InnoDB: 在刷新操作正在进行时执行的 DML 操作引发了与 memcached 相关的断言。(缺陷号 20390277)
InnoDB: memcached提出
process_arithmetic_command
了一个断言。decr
为不存在的密钥返回了错误的错误代码 (缺陷号 20386835)InnoDB:忽略了使用memcached
exptime
命令定义 的过期时间 (memcached将过期时间设置为一个间隔值而不是系统时间值。(缺陷 #20381342,缺陷 #70055)set
InnoDB
InnoDB: 当全文搜索
fts_savepoint_release()
功能释放命名事务保存点和所有后续保存点时,引发了断言。只应释放初始保存点。(缺陷号 20341916)InnoDB: 全文搜索优化操作提出了断言。(缺陷号 20281800)
-
InnoDB: 由于 MySQL 5.6.20 中引入的回归,当memcached插件处于活动状态时, mysqld 停止不会停止mysqld服务器进程(缺陷 #20078646,缺陷 #74956)
InnoDB
参考资料:此问题是 Bug #18409840 的回归。
InnoDB:具有索引的表上 的
ALTER TABLE ... RENAME
故障FULLTEXT
引发了断言。(缺陷号 20043707)InnoDB: 在
ALTER TABLE
将具有 UTF-8 字符集的表转换为ROW_FORMAT=REDUNDANT
. (错误#19843246、错误#19895661、错误#20219871)InnoDB: 创建虚拟表时, 不必要地创建
autoinc_mutex
了对象的成员dict_table_t
同样,为虚拟索引不必要地创建zip_pad.mutex
对象的dict_index_t
为了避免不必要的互斥争用,autoinc_mutex
对象zip_pad.mutex
现在在第一次锁定尝试时分配和初始化。(缺陷 #19788198,缺陷 #73361)-
InnoDB: 一个
ALTER TABLE ... RENAME
操作引发了一个无效的断言。断言代码使用了不正确的事务对象。(漏洞 #18523599)参考资料:此问题是 Bug #17447500 的回归。
InnoDB:列上 的内存缓存
append
操作INT
导致分段错误。append
不支持对INT
列的操作,现在已被阻止。(缺陷 #75200,缺陷 #20209756)分区:
ALTER TABLE
当写锁对该表有效时, 许多试图向分区表添加分区、列或索引的(错误#74451、错误#74478、错误#74491、错误#74560、错误#74746、错误#74841、错误#74860、错误#74869、错误#19856162、错误#19864284、错误#19873019、错误#19891663、错误#19990815,错误#20026661,错误#20031966,错误#20033503,错误#19827845)复制: 当从 MySQL 5.7.6 或更高版本的服务器复制到 MySQL 5.6.23 或更早版本的服务器时,如果旧版本的应用程序线程遇到
Anonymous_gtid_log_event
它会导致断言。该修复确保 MySQL 5.7.6 及更高版本中添加的这些新日志事件不会导致 MySQL 5.6.24 及更高版本的从站出现此问题。如果gtid_mode
是OFF
并且应用程序线程遇到一个Gtid_log_event
,则应用程序线程会因错误而中止。如果gtid_mode
是ON
并且应用程序线程遇到一个Anonymous_gtid_log_event
,则应用程序线程会因错误而中止。(缺陷号 20436436)复制: 设置
automatic_sp_privileges
变量后,服务器会自动向存储例程的创建者授予EXECUTE
和ALTER ROUTINE
权限(如果用户还没有这些权限)。当特权用户以非特权用户身份在 master 上创建过程时DEFINER
,当前用户将被视为特权用户,并且mysql.procs_priv
不会更新表。当这样的语句被复制到 slave 时,非特权DEFINER
被认为是从站上的当前用户,并且正在分配特权。这导致分配给主服务器和从服务器的特权不同。该修复程序确保将存储例程的创建者添加到二进制日志中,并且从属现在在授予权限之前首先检查用户是否存在。为了保持与以前版本的兼容性,在不可DEFINER
用时 使用。INVOKER
作为此修复的一部分,匿名用户可用于从主服务器复制到从服务器。(缺陷号 20049894)复制: 当使用配置为使用 UTF-16、UTF-32 或 UCS-2 等特殊字符集的从站时,接收方 (I/O) 线程无法连接。该修复确保在这种情况下,如果不支持从站的字符集,则默认使用该
latin1
字符集。(漏洞 #19855907)复制: 二进制日志组提交的内部问题导致与
threadpool
插件不兼容。(漏洞 #18845301)复制: 当
gtid_mode=ON
和slave_net_timeout
设置为低值时,从 I/O 线程可能会挂起。这是因为当转储线程发现许多可以跳过的事件时,从属心跳没有足够定期地发送。该修复可确保在这种情况下正确发送心跳。(错误#74607,错误#19975697)CMake未能正确检测最新版本的 OpenSSL 的 OpenSSL 版本(版本字符串的格式已更改)。(缺陷号 20756770)
对于准备好的语句的执行,没有检查审计日志插件是否返回错误,因此可能会错误地返回语句成功。(缺陷号 20567900)
Debian 软件包缺少一些依赖项。(缺陷号 20561621)
在执行
GRANT ... WITH GRANT OPTION
语句之后,执行带有视图的准备好的语句可能会导致服务器退出。(缺陷号 20030284)名为 的用户可以在没有权限的
event_scheduler
情况下查看事件计划程序进程列表 。PROCESS
(错误#20007583,错误#20754369)从表中删除列后尝试创建用户
mysql.user
可能会导致服务器退出。(漏洞 #19910140)按结果排序
GROUP_CONCAT()
可能会导致服务器退出。(错误#19880368,错误#20730220)格式错误的
mysql.proc
表行可能导致与该行DROP DATABASE
关联的数据库 的服务器退出。proc
(漏洞 #19875331)SHOW GRANTS
使用代理用户连接后可以显示代理用户的密码哈希。(漏洞#19817663)较大的
transaction_prealloc_size
系统变量值可能会导致服务器分配过多的内存。最大值已向下调整为 128K。对 进行了类似的更改transaction_alloc_block_size
。如有必要,事务仍然可以分配超过 128K;此更改减少了可以预分配的数量,以及增量分配块的最大大小。(漏洞 #19770858,漏洞 #20730053)表上的某些查询
INFORMATION_SCHEMA.INNODB_FT_CONFIG
可能会导致服务器退出。(漏洞 #19703520)<=>
对于使用运算符比较两行并且这些行属于不同字符集 的查询,可能会发生服务器退出。(错误#19699237,错误#20730155)某些
InnoDB
错误导致存储函数和触发条件处理程序被忽略。(错误#19683834,错误#20094067)由于错误地将不正确的字段与临时表相关联,优化器可能会引发断言。(错误#19612819,错误#20730129)
审核日志过滤未应用于连接事件。(漏洞 #19509398)
使用
audit_log_connection_policy=ERRORS
,成功COM_QUIT
的事件被错误地写入审计日志。对于audit_log_statement_policy=NONE
,无论当前audit_log_connection_policy
设置如何,都不会将连接事件写入审核日志。(漏洞 #19509373,漏洞 #21027210)状态变量的值
Audit_log_events
不等于其他审计日志计数器的总和。(漏洞 #19509336)过滤审计日志事件时,
Audit_log_events_filtered
状态变量不会增加。(漏洞 #19509263)MySQL 5.6.20 中审计日志插件增加了很多新特性,但版本号并没有增加。版本已升至 1.1。(漏洞 #19502900)
由于优化器未能分配足够的内存来解析外部引用,服务器可能会退出。(错误#18782905,错误#19892803)
如果在服务器启动时发现审计日志文件已损坏,则不会始终写入适当的错误消息。此外,如果插件已加载,则无论日志是否已损坏,都会对其进行初始化,重命名日志文件失败的情况除外。(漏洞 #14584292)
使用 子句 创建
FEDERATED
包含列的表 会导致服务器退出。(漏洞 #12671631)AUTO_INCREMENT
LIKE
对一些代码问题进行了更正,这些问题导致编译器警告数组边界、可能未初始化的变量以及设置但未使用的变量。(错误#75735,错误#20458574)
NULL
作为表达式未被识别为用于计算性能模式语句摘要的文字。(错误#74813,错误#20015246)系统
group_concat_max_len
变量可以在运行时设置为其最大值,但不能在选项文件中设置。(错误#74037,错误#19670915)服务器警告错误消息引用了过时的
table_cache
系统变量而不是table_open_cache
。感谢 Daniël van Eeden 提供修复某些实例的补丁。(错误#73373、错误#19285052、错误#75081、错误#20135780)在
DIGEST_TEXT
Performance Schema 语句事件表的列中,对表单系统变量的引用 存储为. (错误#71634,错误#18304086)@@
var_name
@ @
var_name
如果使用不正确的 SSL 安装路径或不受支持(太旧)的 SSL 安装路径指定 CMake选项,则该选项将隐式更改为该值,并改用 yaSSL。现在 CMake以错误退出,因此用户知道必须更改选项值。(缺陷 #69744,缺陷 #17162055)
WITH_SSL
bundled
mysql_real_connect()
如果服务器没有运行,可以关闭一个文件描述符两次。(漏洞 #69423,漏洞 #19226740)仅当启用了通用查询日志时,审计日志插件才会收到通用日志的事件通知。现在,无论是否启用常规查询日志,都会发布通知。(错误#60782、错误#12368204、错误#20536590、错误#75796、错误#20479643)