-
此版本延续了 MySQL 5.6.6 中开始的对服务器参数默认值进行更改的过程。这些更改的动机是提供更好的开箱即用性能并减少数据库管理员手动更改设置的需要。当我们获得反馈时,这些更改将在未来的版本中进行修订。
在某些情况下,参数具有不同的固定默认值。在其他情况下,服务器会在启动时使用基于其他相关参数或服务器主机配置的公式自动调整参数大小,而不是使用固定值。例如, 的设置
host_cache_size
是其先前的默认值 128,向上调整的量与 的值成比例max_connections
。自动调整大小背后的想法是,当服务器有可用信息来决定可能优于固定默认值的参数设置时,它会这样做。下表总结了对默认值的更改。对于自动调整大小的变量,主要变量描述提供了有关调整大小算法的更多详细信息。请参阅 服务器系统变量和 InnoDB 启动选项和系统变量。这些默认设置中的任何一个都可以通过在服务器启动时指定一个显式值来覆盖。
范围 旧默认 新默认 host_cache_size
128 自动调整使用 max_connections
innodb_log_file_size
5MB
48MB
open_files_limit
0 自动调整使用 max_connections
performance_schema
离开 上 performance_schema_events_waits_history_long_size
10000 自动调整 performance_schema_events_waits_history_size
10 自动尺寸 performance_schema_max_cond_instances
1000 自动尺寸 performance_schema_max_file_instances
10000 自动尺寸 performance_schema_max_mutex_instances
1000000 自动尺寸 performance_schema_max_rwlock_instances
1000000 自动尺寸 performance_schema_max_table_handles
100000 自动尺寸 performance_schema_max_table_instances
50000 自动尺寸 performance_schema_max_thread_instances
1000 自动尺寸 query_cache_size
0 1M query_cache_type
ON
OFF
table_definition_cache
400 自动调整使用 table_open_cache
table_open_cache
400 2000 thread_cache_size
0 自动调整使用 max_connections
-
mysql_install_db现在是一个 Perl 脚本,可以在任何安装了 Perl 的系统上使用。以前,它是一个 shell 脚本,只能在 Unix 平台上使用。
此外,mysql_install_db
--datadir
对 选项值的要求更为严格。如果路径名的最后一个组件不存在,则只创建它;父目录必须已经存在,否则会发生错误。以前,它会在路径名中创建任何不存在的目录。 -
在 Unix 平台上,mysql_install_db现在创建一个
my.cnf
在基本安装目录中命名的默认选项文件。该文件是根据分发包中包含的模板创建的,名为my-default.cnf
. 您可以在基本安装目录中或下找到该模板。当开始使用 mysqld_safe时,服务器my.cnf
默认使用文件。如果my.cnf
已经存在, mysql_install_db假定它正在使用并写入一个名为的新文件my-new.cnf
。除了一个例外,默认选项文件中的设置被注释掉并且没有效果。例外情况是文件将
sql_mode
系统变量从其默认值 更改NO_ENGINE_SUBSTITUTION
为还包括STRICT_TRANS_TABLES
:sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
此设置生成的服务器配置会导致错误,而不是在修改事务表的操作中对错误数据发出警告。请参阅服务器 SQL 模式。
该模板替换了不再分发
my-default.cnf
的旧示例选项文件(my-small.cnf
、 等)。my-medium.cnf
-
在 Unix 平台上,mysql_install_db支持一个新选项,
--random-passwords
它提供更安全的 MySQL 安装。调用 mysql_install_db会--random-passwords
导致它在正常操作之外执行以下操作:安装过程会创建一个随机密码,将其分配给初始 MySQL
root
帐户,并为这些帐户设置“密码过期”标志。-
初始随机
root
密码写入 环境变量.mysql_secret
命名目录下的文件中。HOME
根据操作系统的不同,使用sudo等命令可能会导致 的值HOME
引用root
系统用户的主目录。.mysql_secret
以模式 600 创建,仅供创建它的系统用户访问。如果
.mysql_secret
已经存在,则将新密码信息附加到它。每个密码条目都包含一个时间戳,以便在进行多个安装操作时,可以确定与每个密码相关联的密码。 没有创建匿名用户 MySQL 帐户。
作为这些操作的结果,安装后必须启动服务器,
root
使用写入.mysql_secret
文件的密码进行连接,并选择一个新root
密码。在此之前,root
不能做任何其他事情。必须为root
您打算使用的每个帐户完成此操作。要更改密码,您可以使用SET PASSWORD
语句(例如,使用mysql客户端)。您还可以使用mysqladmin或 mysql_secure_installation。新的 RPM 安装操作(不是升级) 使用该 选项调用mysql_install_db 。
--random-passwords
因此,从这个版本开始的 RPM 安装将有他们的root
帐户安全,并且将没有匿名用户帐户。(使用 Unbreakable Linux Network 的 RPM 的安装操作不受影响,因为它们不使用 mysql_install_db。)对于使用二进制
.tar.gz
分发或源代码分发的安装操作,您可以手动调用 带有该选项的mysql_install_db--random-passwords
以使您的 MySQL 安装更安全。建议这样做,尤其是对于具有敏感数据的站点。
在 Windows 上,许多 MySQL 可执行文件在运行时依赖于
libeay32.dll
和ssleay32.dll
SSL 库。为确保找到这些库的正确版本,安装过程将它们复制到与可执行文件相同的目录中。
InnoDB:增强了 可
InnoDB
传输表空间功能,以允许文件不可用ALTER TABLE ... IMPORT TABLESPACE
的某些情况下成功.cfg
即使在系统表空间损坏或删除的某些情况下,此增强功能也允许恢复数据。(漏洞 #14589582,漏洞 #66715)性能模式执行的原子操作数减少了。(漏洞 #14658739)
ALTER USER
现在可以用作准备好的语句。(漏洞 #66874,漏洞 #14646014)-
在 Unix 系统上,mysql客户端将交互执行的语句写入历史文件(请参阅 mysql 客户端日志记录)。mysql现在为了记录目的而忽略与“忽略”列表中的任何模式匹配的语句。默认情况下,模式列表是
"*IDENTIFIED*:*PASSWORD*"
, 以忽略引用密码的语句。模式匹配不区分大小写。在模式中,有两个字符是特殊的:?
匹配任何单个字符。*
匹配零个或多个字符的任何序列。
要指定其他模式,请使用
--histignore
命令选项或设置MYSQL_HISTIGNORE
环境变量。(如果两者都指定,则选项值优先。)该值应该是一个或多个模式的冒号分隔列表,这些模式附加到默认模式列表。可能需要引用或转义命令行上指定的模式,以防止您的命令解释器对它们进行特殊处理。例如, 除了引用密码的语句之外,要抑制
UPDATE
和语句的日志记录,请像这样调用mysql:DELETE
shell> mysql --histignore="*UPDATE*:*DELETE*"
(错误#48287,错误#11756377)
-
重要变更;Replication: 当使用该选项运行slave时
--slave-skip-errors
,发现连续跳过的事件(记录为警告的错误)包含以前警告的信息,这导致将过多的冗余信息写入错误日志。使用基于行或混合格式的二进制日志记录时可能会出现此问题。此问题的解决方法是在处理下一个跳过的事件之前清除这些警告。此外,无论 的值如何,跳过的事件现在都以相同的方式处理
binlog_format
,只要log_warnings
系统变量的值大于 1,跳过的错误总是会导致将警告写入错误日志。(漏洞#12776842) 重要更改: 服务器系统变量
profiling
、have_profiling
和profiling_history_size
现在已弃用,并且可能会在 MySQL 服务器的未来版本中删除。(漏洞 #14658683)-
InnoDB:如果线程在操作正在进行 则为 收集 持久统计信息
InnoDB
可能会导致严重错误TRUNCATE TABLE
InnoDB: Assertion failure in thread thread_num in file fsp0fsp.cc line 1882
(漏洞 #14765035)
InnoDB: 当
CREATE INDEX
操作因重复键错误而失败InnoDB
FULLTEXT
,一些分配的内存未被释放。(漏洞 #14759111)-
InnoDB: 在创建
InnoDB
唯一索引的短暂时间窗口内,MySQL 可能会打印虚假警告消息:WARNING: CANNOT FIND INDEX ?index_name IN INNODB INDEX TRANSLATION TABLE
原因是 MySQL 在索引的存在被完全注册之前开始强制执行唯一性约束。该修复程序在索引创建的最后阶段抑制了不正确的消息。(漏洞 #14735988)
InnoDB:如果重复值是由创建索引时的DML操作 的在线 DDL操作可能无法检测到重复的索引值 (漏洞 #14733674)
InnoDB: 在在线 DDL 操作期间,如果在重建表时插入并随后更新记录,则可能会错误地发出重复键错误。(漏洞 #14723456)
InnoDB:无论 配置选项的设置如何,都 在系统表空间
FULLTEXT
中创建索引 的辅助表(漏洞 #14723291)innodb_file_per_table
InnoDB: 使用可 传输表空间功能时,要刷新的表包含 索引
ALTER TABLE ... IMPORT TABLESPACE
语句可能会崩溃 通过此修复,可以导入表数据,但您必须 在导入操作后删除并重新创建索引。(漏洞 #14712962,漏洞 #67081)InnoDB
FULLTEXT
FULLTEXT
InnoDB: 在线期间标记伪造的重复键错误时发生断言失败
ALTER TABLE
。此问题只发生在缺少主键和任何二级索引的表中。此补丁修复了断言失败,但未修复伪造的重复密钥错误,报告为 Bug#14723456。(漏洞 #14712710)InnoDB: memcached
InnoDB
插件 现在可以处理底层字符集为多字节的表。(漏洞 #14711015,漏洞 #67076)InnoDB: 如果
CREATE TABLE
语句因磁盘已满错误而失败,则操作期间分配的一些内存未正确释放。(漏洞 #14708715)InnoDB:对包含索引的表 的
ALTER TABLE
操作 可能导致服务器因断言错误而停止。该修复导致对此类表的所有操作都使用该 子句的表复制行为。(漏洞 #14681198)InnoDB
FULLTEXT
ALTER TABLE
ALGORITHM=COPY
InnoDB: 如果服务器在执行 包含 索引
TRUNCATE TABLE
的 表时崩溃,则在崩溃恢复期间可能会发生更多错误,从而阻止服务器重新启动。(漏洞 #14676345)InnoDB
FULLTEXT
InnoDB: 如果
InnoDB
包含FULLTEXT
索引的表被一条TRUNCATE TABLE
语句 修改,同时在线 DDL操作,服务器可能会以不一致的内部锁结束或崩溃。(漏洞 #14676329)InnoDB: 如果
FULLTEXT
由于“行太大”条件而导致索引创建失败,则后续ALTER TABLE
操作可能会导致服务器因错误而停止。(漏洞 #14668777)InnoDB: 如果 MySQL 服务器在 XA事务处于 ,如果启用了查询缓存,则在崩溃恢复
PREPARED
期间可能会产生不一致的数据如果需要,此修复程序允许 MySQL 在崩溃恢复期间禁用查询缓存。(漏洞#14658648)InnoDB:
InnoDB
如果磁盘在特定时刻变满,则 MySQL 在创建表时可能会崩溃:在创建.frm 文件之后但在创建相应的.ibd 文件之前。(漏洞 #14645935)InnoDB:如果服务器在将更改缓冲区条目合并到缓冲池页面 时的特定点崩溃 ,则事务日志和更改缓冲区将处于不一致状态。重启后,MySQL 在读取对应的二级索引页后可能会崩溃。该问题更可能发生在 MySQL 5.5 或更高版本中,其中原始 插入缓冲 机制被通用化以涵盖其他操作。(错误#14636528、错误#66819、错误#58571、错误#61104、错误#65443)
InnoDB:
CREATE TABLE
如果在操作 过程中发生崩溃InnoDB
,数据字典 可能会处于不一致状态,如果稍后访问部分创建的表,则会导致崩溃。(漏洞 #14601290)InnoDB:启动时,如果配置选项的值与构成重做日志的文件
innodb_log_file_size
的实际大小 不匹配,MySQL 将不会启动 。此行为需要在更改值后手动删除重做日志文件。如果 MySQL 检测到大小不匹配,该修复会导致 MySQL 将所有脏页写入磁盘并在启动期间重新创建重做日志文件。(漏洞 #14596550)ib_logfile*
innodb_log_file_size
InnoDB:
innodb_file_per_table
启用 该DROP TABLE
,由于取决于挂起 I/O 请求时间的竞争条件,操作可能会导致崩溃。(漏洞 #14594600,漏洞 #66718)InnoDB: 如果在线 DDL 操作由于重复键错误而失败,这是由于同时对表进行 DML更改而导致的,服务器可能会因断言错误而崩溃。(漏洞 #14591797)
InnoDB:如果子句包含针对表的字符集编码不正确的字符序列,
InnoDB
具有索引的表 的查询FULLTEXT
可能会崩溃AGAINST
(漏洞 #14588091)InnoDB: 如果
FULLTEXT
从表中删除了索引 数据结构InnoDB
时可能会发生其他错误FULLTEXT
(漏洞 #14586855)-
InnoDB: 如果在创建索引期间用完临时文件的空间,服务器可能会崩溃并显示一条令人困惑的消息。
InnoDB: Assertion failure in thread thread_num in file mtr0mtr.cc line 306 InnoDB: Failing assertion: mtr->state == 12231
(漏洞 #14586256)
-
InnoDB:删除主键然后用不同顺序的列重新创建它的表可能会导致 错误
ALTER TABLE
。InnoDB
该问题影响表,其中交换列在单表 外键 关系中相互引用。数据字典可能处于不一致状态,其中表在SHOW TABLES
输出中列出但无法查询或删除。例如,如果表是用主键列(c1,c2)
和外键声明的c1 REFERENCES c2
:ALTER TABLE t2 DROP PRIMARY KEY, ADD PRIMARY KEY (c2, c1); ERROR 1030 (HY000): Got error 38 from storage engine
(漏洞 #14548753)
InnoDB: 在在线 DDL 操作期间,
ROLLBACK
如果表以前包含FULLTEXT
索引,则影响同一张表可能会导致断言错误。即使在删除此类索引后,也会保留与表FULLTEXT
索引 相关的一些簿记信息InnoDB
(漏洞 #14503700)InnoDB: 如果表的索引键长度非常接近长度上限 3072,则对该表的查询可能会导致严重错误。(错误#14500557,错误#14537695)
InnoDB:查询列 时,包含非 ASCII 字符的表名显示不正确
MYSQL.INNODB_TABLE_STATS.TABLE_NAME
。(漏洞 #14404879)InnoDB:在表 的在线
CREATE INDEX
语句InnoDB
。这个错误只影响非常小的表。它需要对表进行DML 操作,影响 主键列,同时CREATE INDEX
发出语句。(漏洞 #14117641)-
InnoDB: 如果事务以一致的快照开始,然后在事务进行时向表添加新索引,则后续
UPDATE
语句可能会错误地遇到错误:ER_TABLE_DEF_CHANGED: insufficient history for index
此问题可能会导致调试版本中出现断言错误。(漏洞 #14036214)
InnoDB: 在对带有
ROW_FORMAT=COMPRESSED
. (漏洞 #14001972)InnoDB: 在极少数情况下,在对 包含外键
InnoDB
的表 进行操作时,缓冲池中的页面可能会被驱逐但不会写入磁盘,从而导致数据不一致。(漏洞 #13688491)-
InnoDB: 在极少数情况下,MySQL 可能会 修改 BLOB 列的操作的回滚 期间乱序
InnoDB
应用撤消记录。此问题可能会导致调试版本中出现断言错误:!bpage->file_page_was_freed
(漏洞 #13249921)
InnoDB: 在调试版本中,
InnoDB
PAGE_FREE
列表中的不匹配会导致断言。(漏洞 #12701488)分区: 服务器现在跳过 使用内部处理其自身分区的存储引擎的表的修剪(请参阅分区修剪)。服务器现在还明确拒绝对此类表使用显式分区的尝试。(漏洞 #14672885)
分区: 当与主键中有多个列的表一起使用时,但
KEY
使用不属于主键的列作为分区列进行分区时,使用聚合函数DISTINCT
等 无法正确处理。(漏洞 #14495351)SELECT
SUM
(DISTINCT
pk_column_1
) FROMtable
WHEREpk_column_2
=constant
复制: 使用多线程从站时,如果所有工作线程都处于忙碌状态,则内部 MTS 循环缓冲区的清理可能会失败,从而导致缓冲区满和从站失败。(漏洞 #14710881)
复制:
FLUSH LOGS
并行 执行COMMIT
可能导致服务器挂起。(漏洞 #14640486)复制: 当调用 while
gtid_mode
设置为 时OFF
,该SQL_THREAD_WAIT_AFTER_GTIDS()
函数无限期等待,除非指定了超时。在后一种情况下,该函数可能会返回不正确的值。现在,当gtid_mode
isOFF
,SQL_THREAD_WAIT_AFTER_GTIDS()
总是NULL
按预期返回 。(漏洞 #14640065)复制: 部分失败
GRANT
和REVOKE
语句在主从上的处理方式并不总是相同。现在,只要发生错误,我们就会记录一个事件事件,即使它只是部分错误,也会显示一条消息,说明需要手动协调。(漏洞 #14598585)-
复制: 在将当前 GTID 附加到服务器的已记录 GTID 列表与存储引擎提交事务之间存在时间间隔。在慢速平台上,或者在使用分析时,这可能会导致 在数据实际到达数据库之前返回。
SELECT
SQL_THREAD_WAIT_AFTER_GTIDS(
gtid
)现在,当前 GTID 被附加到提交后记录的 GTID,这消除了这个差距,从而消除了可能的不一致来源。(漏洞 #14116526)
复制: 中继日志索引文件中缺少中继日志文件时显示的错误仅告知用户未找到日志文件,但未指定确切原因。现在在这种情况下,返回的错误消息是在中继日志初始化期间无法在索引文件“”中找到中继日志信息中提到的目标日志文件
index_file_name
。(漏洞 #11758505)复制: 在由于磁盘空间不足而失败的非事务性表插入之后,服务器没有正确清理所有未决事件,导致断言或可能导致其他错误。(漏洞 #11750014)
复制: 反引号 (
`
) 字符在内部生成的 SQL 语句中并不总是得到正确处理,这有时会导致复制从站出错或导致从二进制日志文件恢复操作失败。(错误#66550、错误#14548159、错误#29422、错误#11746883)表的
DELETE
语句InnoDB
可能会将不正确的事务元数据写入记录,导致服务器因错误而停止。要解决此问题,请将主键的指定长度减少到小于 1K 字节。(漏洞 #14731482)mysql_secure_installation无法更改在该帐户
password_expired='Y'
的mysql.user
表行中的帐户的密码。(漏洞 #14726722)对于为值生成重复键错误的表 的就地
ALTER TABLE
操作 ,错误消息显示列默认值而不是。(漏洞 #14723364)InnoDB
NULL
NULL
物化半连接的补丁导致
NDBCLUSTER
. (漏洞 #14704659)-
mysqladmin 密码对密码过期的帐户不起作用。(此问题的修复仅限于密码使用本机或“旧” 本机哈希的帐户。它仍然不处理使用 SHA-256 密码哈希的帐户。)
作为此补丁的结果,服务器对密码过期的客户端所允许的操作强制执行的受限操作模式现在包括
SET
除了SET PASSWORD
. 如果帐户使用的密码散列格式需要old_passwords
设置为不同于其默认值的值,这将很有用。(漏洞 #14698309) 重复执行包含已使用的子查询的查询
MAX()
可能会导致内存消耗增加。(漏洞 #14683676)FROM
在子句和子句 中使用嵌套连接和子查询的查询ORDER BY ... DESC
可能会返回太少的行。(漏洞 #14678404)启用优化器跟踪后,
INFORMATION_SCHEMA.OPTIMIZER_TRACE
可以查询该表以查找有关最后语句的跟踪信息。但是,对于从查询缓存中检索结果的查询,此信息不可用。(漏洞 #14665052)-
使用
SELECT ... INTO
用户变量和 列表WHERE
中一个或多个变量的条件的查询存在性能回归INTO
。(漏洞 #14664077)参考:这个问题是 Bug #12408412 的回归。
在调试版本中,服务器可能会因为
db_suicide()
无法处理SIGABRT
信号而崩溃。(漏洞 #14649493)USE
当 包含多个反引号 ( ) 字符时,可能会因 未知数据库而失败。(漏洞 #14645196)dbname
dbname
`
如果将联接下推到存储引擎,外部联接可能执行效率低下并返回不正确的结果。(漏洞 #14644936)
-
在子查询中引用视图的准备好的语句
IN
可能会针对不同的执行返回不同的结果。(漏洞 #14641759)参考资料:另请参阅:Bug #13773979。
在存储的程序中,分配用于保存条件信息的内存直到程序退出才释放,导致内存使用过多。(漏洞 #14640599)
尝试插入、更新、删除或锁定未知的性能模式表失败,
ER_TABLEACCESS_DENIED_ERROR
错误不是ER_NO_SUCH_TABLE
。(漏洞 #14633008)-
当查询因错误而失败时,不完整的结果可能会存储在查询缓存中(前提是启用了查询缓存,并将其设置为非零大小)。此修复可确保不再缓存以错误结束的查询。(漏洞 #14621700)
参考资料:此问题是 Bug #40264 的回归。
线程缓存实现以 LIFO 而不是 FIFO 方式工作,并可能导致线程被拒绝服务(尽管这种可能性很小)。(漏洞 #14621627)
在查询缓存中为从视图中选择的查询注册表时,服务器可能会崩溃。(漏洞 #14619935)
启用半连接和具体化优化后,具体化
const
表的查询在添加时返回不正确的结果STRAIGHT_JOIN
。(漏洞 #14609394)如果范围扫描中有多个范围,则索引条件下推结合降序索引范围扫描可能会返回不正确的结果。(漏洞 #14604223)
-
EXPLAIN DELETE ... WHERE
在存储例程中使用时可能无法正常运行。(漏洞 #14601802)impossible_condition
参考资料:此问题是 Bug #11752097 的回归。
较小的 值
max_sort_length
可能会为整数、小数、浮点或时间数据类型产生不正确的结果。对于那些数据类型,现在max_sort_length
将被忽略。(漏洞#14596888)将 GNU配置选项转换为CMake等效项 的configure.pl脚本 为和 选项 生成了错误输出 。它现在忽略了这些选项。(漏洞 #14593123)
--with-client-ldflags
--with-mysqld-ldflags
使用半连接具体化执行时,带有子查询和
ORDER BY
和LIMIT
子句的查询返回的行数少于预期。(漏洞 #14580874)Got error 159 when reading table
当一个事务试图访问一个已被另一个事务修改的表时, 服务器将过多的消息打印到错误日志中。(漏洞 #14579877)InnoDB
优化器可能会根据使用列前缀的索引 选择不正确的执行计划来更新表。(漏洞 #14578060)如果子查询包含一个子句,子查询在
FROM
子句中的具体化可能会返回错误的行数LIMIT
。(漏洞 #14576727)源内构建修改了源文件
sql/share/dictionary.txt
。(漏洞 #14562699)内存清理不当可能导致服务器退出。(漏洞 #14536113)
在
JOIN ... ON
子句中包含对超出范围的字段的外部引用的子查询的查询可能会导致服务器崩溃。(漏洞#14498914)在 Windows 上,mysql_plugin找不到 my_print_defaults。(漏洞 #14471052)
-
在语句中使用时,包含前导或尾随空格的引号用户名或主机名值会导致 在发出语句
GRANT
之前错误地分配权限。FLUSH PRIVILEGES
现在,作为此修复的结果
GRANT
,在分配特权之前,语句中使用的引用名称和主机标识符会自动去除任何前导和尾随空格。(漏洞 #14328259) 如果服务器是在启用系统变量的情况下启动的,则 授予或撤销
PROXY
特权会导致服务器退出。skip_name_resolve
(漏洞 #14211140)CREATE USER
并且DROP USER
可能无法刷新特权,需要FLUSH PRIVILEGES
明确使用。(漏洞 #13864642)在 OS X 上,
version_compile_machine
系统变量不包括在64
64 位系统上编译的服务器二进制文件的值。(漏洞 #13859866)通过视图访问
INFORMATION_SCHEMA
表可能会泄漏内存。(漏洞 #13734987)create_initial_db
在带有 CMake 2.6 的 Microsoft Windows 上,如果步骤失败 ,构建过程不会停止。(漏洞 #13713525)在实际参数解析发生之前,在mysqld_safe中 测试选项的存在和默认值的分配。
--plugin_dir
(漏洞 #13548161)缓存的查询结果在语句执行结束时并不像预期的那样为空。这可能发生在执行查询(启用查询缓存并设置为非零大小)时,结果未发送到客户端,例如事件调度程序执行的查询,或者在服务器运行时执行包含查询的存储例程时引导模式。(错误#11755580,错误#14609893)
-
服务器计算的给定主机的连接错误数会定期重置,结果
max_connect_errors
永远不会到达,并且永远不会阻止无效主机尝试连接。(漏洞 #11753779)参考资料:另请参阅:Bug #38247、Bug #43006、Bug #45584、Bug #45606。
Range checked for each record
优化现在用于具有外部查询引用的条件 。(漏洞 #11750963)客户端认证时生成随机数占用CPU过多。(缺陷 #66567,缺陷 #14555434)
-
InnoDB
元数据锁定导致涉及表和少量连接 的只读工作负载过度争用。现在,可以将元数据锁集划分为单独的散列,以允许访问不同对象的连接使用不同的锁定散列并减少争用。新的
metadata_locks_hash_instances
系统变量可用于指定哈希数。(错误#66473,错误#14569140) 在 Windows 上, mysql_install_db的 Perl 版本在mysql数据库中创建了未正确填充的系统表 。(漏洞 #65584,漏洞 #14181049)
ST_Contains()
并ST_Within()
错误地报告多边形不包含自身。ST_Equals()
对于仅移动顶点不同的多边形,错误地返回 0。(错误#64653,错误#13864679)ST_Difference()
可能会在结果中错误地生成空多边形。(错误#64649,错误#13865773)libmysqlclient
没有使用符号版本控制。感谢 Nicholas Bamber 提供补丁。(错误#64386,错误#13788218)解析器拒绝了涉及
UNION
右侧查询词在括号中有表格的合法查询。(错误#54382,错误#11761854)对于一些涉及
ORDER BY
的查询,优化器选择了错误的索引来访问表。(错误#45969,错误#11754370,错误#14338686)在调试版本中,
vio_read()
打印errno
而不是socket_error
调试跟踪。(缺陷 #28775,缺陷 #11746795)