从 MySQL 5.6.10 开始,MySQL Enterprise Edition 可用于 MySQL 5.6。具体来说,MySQL Enterprise 5.6.10 包括以前仅在 MySQL 5.5 中可用的这些组件:MySQL Enterprise Security(PAM 和 Windows 身份验证插件)、MySQL Enterprise Audit 和 MySQL Thread Pool。有关这些功能的信息,请参阅 MySQL 企业版。要了解有关商业产品的更多信息,请参阅 https://www.mysql.com/products/。
此版本的已知限制:
在 Microsoft Windows 上,当使用 MySQL 安装程序在具有不同版本(例如 5.5.30)的现有 MySQL Server 的主机上安装 MySQL Server 5.6.10 时,该主机也具有不同的许可证(社区与商业),您必须首先更新现有 MySQL 服务器的许可证类型。否则,MySQL Installer 将删除与您为 MySQL Server 5.6.10 选择的许可证不同的 MySQL Server。
在 Microsoft Windows 8 上,将社区版本更新为商业版本需要您在更新后手动重启 MySQL 服务。
-
对服务器用于处理密码过期帐户的客户端连接的沙盒模式进行了以下更改:
有一个新的
disconnect_on_expired_password
系统变量(默认值:启用)。这控制服务器如何处理过期密码帐户。-
C API 客户端库中添加了两个标志:
MYSQL_OPT_CAN_HANDLE_EXPIRED_PASSWORDS
formysql_options()
和CLIENT_CAN_HANDLE_EXPIRED_PASSWORDS
formysql_real_connect()
。每个标志使客户端程序能够指示它是否可以处理密码过期帐户的沙盒模式。MYSQL_OPT_CAN_HANDLE_EXPIRED_PASSWORDS
无条件地为mysqltest启用,对于交互模式下 的mysql ,如果第一个命令是 mysqladminpassword
。
有关客户端标志如何与 交互的更多信息
disconnect_on_expired_password
,请参阅服务器处理过期密码。(缺陷 #67568,缺陷 #15874023)
-
InnoDB: 当使用压缩表时,计算缓冲池内存使用量的计算很复杂,因为压缩页面可能小于 16KB 或用户指定的 页面大小。尽管可以从
INFORMATION_SCHEMA.INNODB_BUFFER_PAGE
表中检索此信息,但该操作的开销很大。以下新状态变量有助于简化涉及缓冲池内存使用的计算:(漏洞 #15842637)
复制: 一
Auto_Position
列已添加到生成的输出中SHOW SLAVE STATUS
。此列的值显示是否正在使用复制自动定位。如果启用了自动定位——也就是说,如果MASTER_AUTO_POSITION = 1
由在CHANGE MASTER TO
从站上执行的最后一个成功的语句设置——那么该列的值为 1;如果不是,则值为 0。(缺陷 #15992220)在为 Unbreakable Linux Network 构建的 RPM 包中,
libmysqld.so
现在有一个版本号。(漏洞#15972480)使用给定操作不支持的或 值的
ALTER TABLE
语句的 错误消息非常通用。服务器现在生成更多信息性消息。(漏洞 #15902911)LOCK
ALGORITHM
如果密码已过期的客户端已连接但
old_passwords
不是选择适合客户端帐户的密码哈希格式所需的值,则客户端无法确定正确的值。现在服务器会自动为帐户身份验证方法适当地设置会话old_passwords
值。例如,如果帐户使用sha256_password
身份验证插件,则服务器设置old_passwords=2
. (漏洞#15892194)系统
validate_password_policy_number
变量已重命名为validate_password_policy
. (漏洞 #14588121)在 JSON 格式
EXPLAIN
的输出中,attached_condition
子查询的信息现在包括select#
指示子查询执行的相对顺序。(漏洞 #13897507)
重要变更;复制: 用于在全局事务标识符中显示 UUID 的字母大小写不一致。现在,所有 GTID 值都使用小写字母,包括 的输出中的
Retrieved_Gtid_Set
和Executed_Gtid_Set
列中SHOW SLAVE STATUS
。(漏洞#15869441)表现; InnoDB: 一些与撤销日志相关的数据结构可能在查询期间被不必要地初始化,尽管它们只在特定条件下才需要。(漏洞 #14676084)
表现; InnoDB:通过跳过冗余测试优化压缩表的 读取操作 检查是否需要从 插入缓冲区中合并任何相关更改的次数比必要的次数多。(错误#14329288,错误#65886)
表现; InnoDB: 在创建表后,立即对其进行查询不会使用松散索引扫描。
ALTER TABLE
同一查询可能会在表上的之后使用松散索引扫描min()
该修复提高了涉及分组函数和的查询的成本估算的准确性max()
,并防止ALTER TABLE
语句更改查询计划。(更稳定的查询计划可能会也可能不会使用松散索引扫描。)(缺陷 #14200010)InnoDB: 当表的主键包含列前缀,并且表上定义了全文索引时,全文搜索导致将不必要的警告写入错误日志。此修复抑制了不必要的警告。(漏洞 #16169411)
-
InnoDB: 在在线 DDL操作,还执行以下任何
DROP FOREIGN KEY
一项的语句中不允许ALTER TABLE
添加或删除列。
添加或删除 主键索引。
制作专栏
NULL
或NOT NULL
.重新排序列。
更改
ROW_FORMAT
或KEY_BLOCK_SIZE
属性。
(漏洞 #16095573,漏洞 #68019)
InnoDB: 在关闭期间发出了一些 Valgrind 警告,同时清理处理包含
FULLTEXT
索引的表的优化的后台线程。(漏洞 #15994393)InnoDB: 在在线 DDL 操作期间,将列从可空更改为
NOT NULL
可能会成功或失败,具体取决于ALTER TABLE
语句是使用ALGORITHM=INPLACE
还是ALGORITHM=COPY
.ALGORITHM=COPY
即使列包含NULL
值,with 操作ALGORITHM=INPLACE
失败,因为列可能包含NULL
值。现在, 允许NOT NULL
与子句结合使用 配置选项包含 or 设置。如果ALGORITHM=INPLACE
sql_mode
STRICT_TRANS_TABLES
STRICT_ALL_TABLES
ALGORITHM
如果语句中没有指定子句ALTER TABLE
,则在线 DDL 操作将ALGORITHM=INPLACE
尽可能使用,否则 将使用ALGORITHM=COPY
。(漏洞 #15961327)-
InnoDB: 在某些情况下,
InnoDB
使用ALTER TABLE ... IMPORT TABLESPACE
. 该问题伴随着以下消息之一:Warning : InnoDB: The B-tree of index "PRIMARY" is corrupted. error : Corrupt
或者:
Warning : InnoDB: The B-tree of index "GEN_CLUST_INDEX" is corrupted. error : Corrupt
此问题间歇性发生,主要影响大型表。该
REPAIR TABLE
语句将修复错误消息报告的问题。(漏洞 #15960850,漏洞 #67807) -
InnoDB:在线 DDL操作 创建的索引名称在
INFORMATION_SCHEMA
表中显示不正确 此修复可确保表名的前导0xff
字节被剥离以供INFORMATION_SCHEMA
查询。此更改影响列:innodb_buffer_page.index_name
innodb_buffer_page_lru.index_name
innodb_cmp_per_index.index_name
innodb_cmp_per_index_reset.index_name
innodb_locks.lock_index
innodb_sys_indexes.name
(漏洞 #15946256)
InnoDB:
ALTER TABLE
使用 在线 DDL功能的语句可能会导致 Valgrind 警告。(漏洞 #15933178)InnoDB: 如果添加唯一索引的在线 DDL 操作失败,因为在在线 DDL 操作期间并发 DML 创建了重复项,
ALTER TABLE
操作失败,错误类型错误。它返回了ER_INDEX_CORRUPT
;现在它返回新的错误代码ER_DUP_UNKNOWN_IN_INDEX
。(它不返回ER_DUP_KEY
,因为当这种情况发生时重复键值不可用以报告。)(缺陷 #15920713)InnoDB: 在 添加唯一索引的在线 DDL操作期间,即使索引尚未可见,创建重复值的 DML操作也可能会失败并出现错误。(这种情况可能会出现一个短暂的时间窗口。)如果索引因并发 DML 生成的重复条目而无效,则修复会导致索引创建操作失败。(漏洞 #15920445)
ER_DUP_KEY
InnoDB:
innodb_log_file_size
在 64 位 Windows 系统上无法 指定 4GB 或更大的 此问题仅影响调试版本。(漏洞 #15882860)InnoDB:如果服务器在在线 DDL 语句快 结束时崩溃 使用该
ALTER TABLE
的后续可能会导致严重错误。(漏洞 #15878013)CHECK TABLE
EXTENDED
InnoDB:如果表是使用子句
CHAR
具有不同长度字符集的表, 在列上创建索引(漏洞 #15874001)utf8
ROW_FORMAT=REDUNDANT
InnoDB: 此修复可确保在
ALTER TABLE
复制原始表的操作期间出现严重的未处理错误时,数据恢复可能需要的任何数据都将保留在使用 或 . (漏洞#15866623)#sql-ib-
table_id
#mysql50##sql-ib-
table_id
InnoDB: 状态变量
Innodb_buffer_pool_read_ahead_evicted
可能显示一个不准确的值,高于预期,因为缓冲池中的某些页面被错误地认为是由 预读请求引入的。(漏洞 #15859402,漏洞 #67476)-
InnoDB:如果表在列的列前缀上也有索引,则向表添加主键 的在线 DDL操作。
BLOB
如果要删除包含页外列的任何行,则 此修复会在通过语句重建表时 暂停后台 清除操作 。目前,为避免在线 DDL 操作期间占用过多空间,请在完成之前避免这些类型的并发 DML操作 :
ALTER TABLE
ALTER TABLE
(漏洞 #14827736)
-
InnoDB: 服务器在创建索引时可能会因断言错误而停止:
InnoDB: Assertion failure in thread thread_num in file row0merge.cc line 465
-
InnoDB:在使用多字节字符集为列 的列前缀 创建索引时,服务器可能会因断言错误而停止
InnoDB: Assertion failure in thread thread_num in file row0merge.cc line 465 InnoDB: Failing assertion: len == ifield-<fixed_len
(漏洞 #14753402)
InnoDB: 错误#14100254 的修复引入的回归将导致“ !BPAGE->FILE_PAGE_WAS_FREED ”断言。(漏洞 #14676249)
InnoDB:
INFORMATION_SCHEMA
具有InnoDB
元数据的表,例如innodb_sys_tablestats
,使用编码格式在表名中显示非字母数字字符,例如 with@0024
instead of$
。(漏洞 #14550145)InnoDB: 如果 的值
innodb_force_recovery
小于 6,如果在计算表的统计信息时读取损坏的页面,则打开损坏的表可能会永远循环。有关损坏页面的信息被重复写入错误日志,可能导致磁盘空间问题。此修复会导致服务器在尝试读取页面失败一定次数后停止。要解决此类损坏问题,请设置innodb_force_recovery=6
并重新启动。(缺陷 #14147491,缺陷 #65469)InnoDB: 对于 的值很大
innodb_buffer_pool_size
,并且innodb_buffer_pool_instances
设置大于 1,页面被错误地 从缓冲池中逐出。(漏洞 #14125092)InnoDB:表 损坏
innodb_ft_user_stopword_table
可能导致服务器退出。(缺陷 #67960,缺陷 #16038656)-
分区: 现在对使用提供自动分区的存储引擎(例如
NDB
存储引擎)但显式分区的表启用分区修剪。以前,使用这种存储引擎的所有表都禁用修剪,无论这些表是否明确定义了分区。NDB
此外,作为此修复的一部分,现在对使用提供自动分区 的存储引擎(例如 )的表禁用显式分区选择 。(漏洞 #14827952)参考资料:另请参阅:Bug #14672885。
复制: 当使用基于 GTID 的复制时,每当事务在主服务器上执行但未发送到从服务器,因为从服务器已经有一个具有该 ID 的事务时,半同步复制超时。可能发生这种情况的一种情况是在故障转移操作期间,新主服务器在新从服务器后面启动。(漏洞 #15985893)
复制: 当用作复制信息存储库类型时,在每个事务后执行的不必要的磁盘刷新
FILE
可能会降低性能。现在只有当数据和中继日志信息都存储在(事务)表中时才会这样做。(漏洞 #15980626)复制: 发行, 覆盖大量(数千万或数亿)交易,可能导致服务器挂起。(漏洞 #15968413)
START SLAVE UNTIL SQL_BEFORE_GTIDS =
gtid_set
gtid_set
-
复制: 当从站开始使用
--skip-innodb
复制信息文件存储库(和FILE
的默认 值)时,复制被错误地停止。但是,如果从服务器正在使用文件存储库并且当前没有在信息存储库之间迁移,则复制应该能够正常工作。现在,服务器会忽略在这种情况下尝试打开表信息存储库时引发的错误。master_info_repository
relay_log_info_repository
另外,用 启动slave 时没有正确进行二进制日志初始化
--skip-innodb
,导致--log-bin option
被忽略。(错误#15956714、错误#67798、错误#15971607) -
复制: 当临时表和持久表,或者使用不同存储引擎的临时表在单个语句中被删除时,这个语句实际上是作为两个语句写入二进制日志的,每个语句由它自己的日志事件表示。时
gtid_mode
,ON
每个DDL事件必须有一个GTID;然而,在这种情况下,删除临时表的语句是未提交的,这意味着它没有被赋予自己的 GTID。现在,当删除临时表和持久表或使用不同存储引擎的 DDL 语句以刚才描述的方式分开时,并且生成的仅影响临时表的记录语句不会隐式提交,提交被强制使相应的日志事件具有自己唯一的 GTID。(漏洞 #15947962)
-
复制: 半同步复制在启用 GTID 的情况下无法正常工作。(漏洞 #15927032)
参考资料:另请参阅:Bug #14737388。
-
复制: 当用于由支持 GTID 的服务器写入的二进制日志时, mysqlbinlog无法正确处理因遗漏语句而未关闭的事务,这些语句在使用该
--database
选项时被忽略。现在,每当mysqlbinlog
--database
读取 GTID 日志事件时,它都会检查是否有未关闭的事务,如果有,则发出提交。(漏洞 #15912728) 复制: 启用 GTID 后,当客户端断开连接时自动删除临时表并不总是生成 GTID。现在,每个记录
DROP TABLE
的语句,包括服务器生成的任何语句,都保证有自己的 GTID。(漏洞 #15907504)复制: 当一个二进制日志在服务器上被重放时(例如,通过执行类似mysqlbinlog
binlog.000001
|
mysql的命令),它在使用的客户端连接上设置一个伪从模式,以便服务器可以读取二进制日志并应用二进制日志事件正确。但是,在读取二进制日志转储后,伪从模式没有被禁用,这导致在同一连接上后续执行的 SQL 语句中应用了意外的过滤规则。(漏洞#15891524)复制: 从从表的版本中删除一列,然后在主表上更改该表的同一列(如果该列未在从表上删除,则需要进行类型转换),插入到该表中导致复制失败。(漏洞 #15888454)
复制: 使用
sql_slave_skip_counter
与基于 GTID 的复制不兼容。现在无论何时都不允许将此变量设置为非零值--gtid-mode = ON
,并且尝试这样做会失败并出现错误。(漏洞#15833516)复制: 在mysqld关闭期间,全局 GTID 变量在确定所有插件已停止使用它们之前被释放。(漏洞 #14798275)
-
复制:
MASTER_POS_WAIT()
当 GTID 协议跳过事务时,由于从属 SQL 线程的无效更新,可能会挂起或返回 -1。(漏洞 #14775893)参考资料:另请参阅:Bug #15927032。
复制: 尝试在多线程从站上执行停止事件可能会导致对中继日志进行不必要的更新,从而导致从站与主站失去同步。(漏洞 #14737388)
复制: 未正确检查二进制日志查询日志事件中的数据库名称的长度。(漏洞 #14636219)
复制:
START SLAVE
与设置同时 发出sql_slave_skip_counter
或slave_net_timeout
可能导致死锁。(漏洞 #14236151)复制: 当使用基于语句的复制时,主从使用具有不同
AUTO_INCREMENT
列的表模式,插入生成AUTO_INCREMENT
的值可能会应用于从属上的错误表。(漏洞 #12669186)复制:使用无效值 重复执行
CHANGE MASTER TO
语句MASTER_LOG_POS
可能会导致错误,并可能导致从站崩溃。现在在这种情况下,语句会失败并显示一条明确的错误消息。(错误#11764602,错误#57454)Microsoft Windows: 不再允许动态文件名(带冒号)。使用 Microsoft Windows 的备用数据流 (ADS) NTFS 功能的静态文件名可能会继续使用。(漏洞 #11761752)
Oracle RPM 包由于文件中的行
yum
问题而无法使用,导致yum 将包解释为过时了。(漏洞 #16298542)obsoletes
.spec
在客户端连接处理期间,服务器现在在 SSL 检查后执行密码过期检查。(漏洞 #16103348)
插件记录例程错误处理了它的参数,导致未定义的行为。(漏洞 #16002890)
修复了 yaSSL 中的缓冲区处理问题。(漏洞 #15965288)
在存储过程中,执行使用非常长的表别名的多表
DELETE
语句可能会导致服务器退出。(漏洞 #15954896)元数据锁定和表定义缓存例程并不总是检查传递给它们的名称的长度。(漏洞 #15954872)
在表上没有
FULLTEXT
索引 的情况下InnoDB
,全文查询COUNT(*)
可能会引发断言。(漏洞 #15950531)-
在极少数情况下,使用的查询
UpdateXML()
可能会导致服务器崩溃。(漏洞 #15948580)参考资料:另请参阅:错误 #13007062。
查询中非常长的表别名可能会导致服务器退出。(漏洞 #15948123)
尽管表上没有足够的锁,但删除索引的联机 DDL 操作仍可以继续进行。此问题可能导致严重错误,尽管该错误仅在调试版本中观察到。(漏洞 #15936065)
-
添加到该选项的mysqldump输出 的注释
--set-gtid-purged
格式错误,并在重新加载转储文件时导致语法错误。(漏洞 #15922502)参考资料:另请参阅:Bug #14832472。
终止处理期间线程池中的争用可能导致 Valgrind 恐慌。(漏洞 #15921866)
修复了几个与 OpenSSL 相关的内存泄漏问题。(漏洞 #15921729)
该
ALTER TABLE
语句现在可以使用LOCK=NONE
子句,允许 在线 DDL和并发DML,用于 包含 外键约束的子表。(漏洞 #15912214)查询中的非常长的数据库名称可能会导致服务器退出。(错误#15912213,错误#16900358)
AES_DECRYPT()
并AES_ENCRYPT()
在使用 OpenSSL 编译 MySQL 时发生内存泄漏。(漏洞 #15909183)更正了几个与 OpenSSL 相关的 Valgrind 警告。(漏洞 #15908967)
如果主键或唯一索引的列包含重复条目,则
ALTER TABLE
with theADD PRIMARY KEY
orADD UNIQUE INDEX
子句可能会遇到严重错误。此错误间歇性发生,具体取决于行在索引块中的物理分布方式。(漏洞 #15908291)Rows_log_event
为行缓冲区分配的字节太少。(漏洞 #15890178)性能模式通常会忽略临时表事件。用户定义的临时表因重新创建而被截断,但性能模式未将重新创建的临时表识别为临时表并提出断言。(漏洞 #15884836)
Fortify 发现的几个代码问题已得到纠正。(漏洞 #15884324)
-
在调试版本中,当为 指定 16 GB 或更高的值时,服务器无法在 64 位 Windows 系统上启动
innodb_buffer_pool_size
。非调试构建可能会有更微妙的问题,例如为 缓冲池分配但未使用的内存,或者读取请求忽略了已缓存在缓冲池中的页面。在 32 位 Windows 系统上
innodb_buffer_pool_instances
,由于内存分配的系统限制,必要时会增加 的值,以便没有缓冲池实例大于 1.3 GB。32 位 Windows 系统所需的这种自动调整也错误地应用于 64 位系统;对于具有 16 GB 或更大缓冲池的系统,调整后的值innodb_buffer_pool_instances
将超过 64 的上限,从而导致调试构建中出现断言错误。(漏洞 #15883071) 主服务器表上的在线 DDL和并发DML 的繁重工作负载可能会导致错误,因为更改会被复制到从属服务器。例如,如果语句以与主服务器上不同的顺序完成,则在引用删除列的查询的同时处理操作可能会导致从服务器上出现错误。(漏洞 #15878880)
DROP COLUMN
复杂
IN
的子查询可能导致服务器退出。(漏洞#15877738)在某些情况下,成本值会在未初始化的情况下打印到优化器跟踪输出,从而导致输出不正确。(漏洞 #15877453)
一些查询,如果用作准备好的语句,会导致服务器在发生错误时退出。(漏洞 #15877062)
如果在线 DDL操作 的最后阶段发生错误,则 有关该表的一些缓存元数据可能无法恢复到其原始状态。此问题通常会影响重命名列的操作,还会在同一
ALTER TABLE
语句中删除并重新创建该列的索引。此问题不影响重组表的 聚集索引的操作,例如添加新的主键。(漏洞#15866734)-
如果谓词与其他谓词一起使用,优化器在
IN -> EXISTS
子查询转换和子查询实现 之间基于成本的选择有时是不正确的。(漏洞 #15866339)IN
OR
参考资料:另请参阅:Bug #13111584。
Performance Schema表
session_connect_attrs
显示了无关信息。(漏洞 #15864703)对于 LooseScan 半连接策略,优化器可以依赖未初始化的变量。(漏洞 #15849654)
即使帐户由不支持密码过期的身份验证插件进行了身份验证,也有可能使帐户的密码过期。(漏洞 #15849009)
如果将松散索引扫描用于降序查询,则结果集包含
NULL
值而不是正确值。(漏洞 #15848665)对于调试版本,在以下情况下可能会引发断言:1) 视图基于
MEMORY
表;2) 该表被更改为删除视图正在使用的某些列;3) ASELECT
在禁用二进制日志记录的视图上完成。(漏洞#15847447)-
如果服务器意外关闭,
InnoDB
具有 1018 列(非常接近 1020 列的上限)的表的存在可能会在服务器重启期间导致断言错误:InnoDB: Failing assertion: table->n_def == table->n_cols - 3
(漏洞 #15834685)
-
子查询
COUNT(DISTINCT ...))
可能会导致服务器退出。(漏洞 #15832620)参考资料:另请参阅:错误 #11750963。
-
设置
validate_password_length
系统变量没有考虑到最小值是其他几个相关系统变量的函数。现在服务器不会将值设置为小于此表达式的值:validate_password_number_count + validate_password_special_char_count + (2 * validate_password_mixed_case_count)
(漏洞 #14850601)
GRANT ... IDENTIFIED BY
可能无法刷新特权。(漏洞 #14849959)当服务器读取该
mysql.user
表时,它现在会检查无效的本机和旧本机密码哈希值,并忽略具有无效哈希值的帐户。(漏洞 #14845445)该
validate_password
插件没有检查某些密码。(漏洞 #14843970)mysqladmin没有正确处理密码过期用户的命令。(漏洞 #14833621)
在 Windows XP 或更早的系统上关闭期间 MySQL 可能会遇到错误。此问题不影响运行 Windows Vista 或更高版本的系统,这些系统使用原子条件变量来表示 Windows 事件。(漏洞 #14822849)
系统表和 InnoDB 数据字典的锁定顺序问题 可能导致 MySQL 内部死锁。(漏洞 #14805484)
在执行
INFORMATION_SCHEMA
查询期间创建临时表可能会导致 Valgrind 警告。(漏洞 #14801497)当与包含存储函数输出的 XPath 表达式一起使用时,
ExtractValue()
失败并出现错误Only constant XPATH queries are supported。(漏洞 #14798445,漏洞 #67313)-
由于最近添加的错误代码,服务器可能会因断言错误而停止:
InnoDB: unknown error code 1502 InnoDB: Assertion failure in thread thread_num in file row0mysql.cc line 683 mysqld got signal 6 ;
DB_DICT_CHANGED
现在,服务器在这种情况下 将错误代码返回 给客户端。(漏洞 #14764015) 如果在将更改应用于某些基础表而不是全部基础表时发生崩溃,则分区表语句中 的 clause
ALGORITHM=INPLACE
子句 可能会导致一致性问题。ALTER TABLE
此修复禁止ALGORITHM=INPLACE
对分区表执行 DDL 操作的子句。(漏洞 #14760210)身份验证插件要求客户端使用
sha256_password
SSL 连接或启用 RSA。当两个条件都不满足时,将生成一条无意义的错误消息。现在,错误消息提供了更多信息。(漏洞 #14751925)如果优化器使用临时表处理分组,则使用游标执行时使用分组的查询失败。(漏洞 #14740889)
XA START
有可能导致服务器崩溃的竞争条件。(漏洞 #14729757)如果为系统变量指定的文件
validate_password_dictionary_file
违反了对有效密码文件内容的限制,服务器现在会在启动时记录警告。(漏洞 #14588148)涉及自相交多边形的计算导致提出断言。(漏洞 #14503584)
在启动时,一些选项和系统变量 variables 可以设置为 1 或 0,但不能设置为
ON
orOFF
。MySQL 程序现在 在命令行和选项文件中接受ON
和。OFF
(漏洞 #14494893)使用mysqldump --routines 生成的输出 在重新加载时可能会产生语法错误。(漏洞 #14463669)
如果
ALTER TABLE
被杀死,ER_QUERY_INTERRUPTED
即使更改成功,服务器也可以报告。这会误导用户。此外,该语句不会写入二进制日志,导致不正确的复制(缺陷 #14382643)在
ONLY_FULL_GROUP_BY
启用 SQL 模式的情况下,两次执行包含在启用该模式下无效的 SQL 查询的存储函数会导致服务器退出。(漏洞 #13996639)-
预加载使用
LIBMYSQL_PLUGINS
环境变量指定的客户端插件可能会失败,除非插件位于硬连接的默认插件目录中。C API 现在在插件预加载期间检查LIBMYSQL_PLUGIN_DIR
环境变量,该环境变量可以设置为在其中查找客户端插件的目录的路径名。此外,对于显式客户端插件加载, C API
mysql_load_plugin()
和mysql_load_plugin_v()
C API 函数已修改为使用LIBMYSQL_PLUGIN_DIR
值(如果存在--plugin-dir
且未提供选项)。如果--plugin-dir
给出,mysql_load_plugin()
则mysql_load_plugin_v()
忽略LIBMYSQL_PLUGIN_DIR
。(错误#13994567,错误#18110355) 解析器无法为某些无效
UNION
构造返回错误。(漏洞 #13992148)由于线程竞争条件,服务器可能会在尝试读取 Performance Schema
threads.PROCESSLIST_INFO
列时退出。(漏洞 #68127,漏洞 #16196158)服务器写入错误日志的某些消息引用了已弃用的
--log-slow-queries
选项而不是该--slow-query-log
选项。同样,服务器引用了已弃用的--log
选项,而不是--general-log-file
和--log-output
选项。(缺陷 #67892,缺陷 #15996571)自动调整性能模式参数的大小可能会导致导致 CPU 使用过多的设置。(缺陷 #67736,缺陷 #15927744)
对于单表
DELETE
或UPDATE
语句, 即使优化器选择通过索引访问方式扫描表,也EXPLAIN
显示type
为(全表扫描访问方式)的值。ALL
现在该type
值显示为index
。(缺陷 #67637,缺陷 #15892875)在某些情况下,当子查询实现成本更低时,优化器可以选择 子查询执行的
IN
转换EXISTS
。(缺陷 #67511,缺陷 #15848521)不允许使用自定义分区和外键
CREATE TABLE
创建表。NDB
但是,可以NDB
使用外键创建一个表,然后使用 向其添加分区 ,从而创建一个无法使用mysqldumpALTER TABLE
备份或恢复的表 。现在,禁令一直在执行。(漏洞 #67492,漏洞 #15844519)当查询包含
LIMIT
子句时,优化器有时会选择非最佳范围扫描策略。(缺陷 #67432,缺陷 #15829358)尝试执行从 MySQL 5.1 到 5.6 的就地升级会导致服务器由于两个系列中的权限结构不匹配而退出。(这不是受支持的操作,但服务器不应异常退出。)(缺陷 #67319,缺陷 #14826854)
mysqldump可能无法转储
mysql
数据库中的所有表。(缺陷 #67261,缺陷 #14771252)在表中进行全文搜索
InnoDB
可能会返回不正确的结果。(缺陷 #67257,缺陷 #14771282)Performance Schema 通常会忽略临时表事件,但有时无法将表正确识别为临时表,因此无法为该表记录事件。(漏洞 #67098,漏洞 #14756887)
如果mysql客户端出 现在正在查找引用字符串结尾的
delimiter
行上,则该命令可能会错误处理。mysql
(缺陷 #64135,缺陷 #13639125)DECIMAL
乘法运算可能会产生严重的不准确性。(错误#45860,错误#11754279)