Documentation Home
MySQL 5.6 发行说明  /  MySQL 5.6.8 的变化(2012-11-07,发布候选)

MySQL 5.6.8 的变化(2012-11-07,发布候选)

配置注意事项

弃用和移除说明

  • 和语句已被删除 SHOW AUTHORSSHOW CONTRIBUTORS

安装注意事项

  • 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 导致它在正常操作之外执行以下操作:

    • 安装过程会创建一个随机密码,将其分配给初始 MySQLroot帐户,并为这些帐户设置密码过期标志。

    • 初始随机root密码写入 环境变量.mysql_secret命名目录下的文件中。HOME根据操作系统的不同,使用sudo等命令可能会导致 的值HOME引用root系统用户的主目录。 .mysql_secret以模式 600 创建,仅供创建它的系统用户访问。

      如果.mysql_secret已经存在,则将新密码信息附加到它。每个密码条目都包含一个时间戳,以便在进行多个安装操作时,可以确定与每个密码相关联的密码。

    • 没有创建匿名用户 MySQL 帐户。

    作为这些操作的结果,安装后必须启动服务器,root使用写入.mysql_secret 文件的密码进行连接,并选择一个新root密码。在此之前,root不能做任何其他事情。必须为root您打算使用的每个帐户完成此操作。要更改密码,您可以使用 SET PASSWORD语句(例如,使用mysql客户端)。您还可以使用mysqladminmysql_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.dllssleay32.dllSSL 库。为确保找到这些库的正确版本,安装过程将它们复制到与可执行文件相同的目录中。

添加或更改的功能

  • InnoDB:增强了 可InnoDB传输表空间功能,以允许文件不可用ALTER TABLE ... IMPORT TABLESPACE的某些情况下成功.cfg即使在系统表空间损坏或删除的某些情况下,此增强功能也允许恢复数据。(漏洞 #14589582,漏洞 #66715)

  • 性能模式执行的原子操作数减少了。(漏洞 #14658739)

  • ALTER USER现在可以用作准备好的语句。(漏洞 #66874,漏洞 #14646014)

  • 在 Unix 系统上,mysql客户端将交互执行的语句写入历史文件(请参阅 mysql 客户端日志记录)。mysql现在为了记录目的而忽略与“忽略列表中的任何模式匹配的语句。默认情况下,模式列表是"*IDENTIFIED*:*PASSWORD*", 以忽略引用密码的语句。模式匹配不区分大小写。在模式中,有两个字符是特殊的:

    • ?匹配任何单个字符。

    • *匹配零个或多个字符的任何序列。

    要指定其他模式,请使用 --histignore命令选项或设置MYSQL_HISTIGNORE环境变量。(如果两者都指定,则选项值优先。)该值应该是一个或多个模式的冒号分隔列表,这些模式附加到默认模式列表。

    可能需要引用或转义命令行上指定的模式,以防止您的命令解释器对它们进行特殊处理。例如, 除了引用密码的语句之外,要抑制UPDATE和语句的日志记录,请像这样调用mysqlDELETE

    shell> mysql --histignore="*UPDATE*:*DELETE*"

    (错误#48287,错误#11756377)

修正错误

  • 重要变更;Replication: 当使用该选项运行slave时 --slave-skip-errors,发现连续跳过的事件(记录为警告的错误)包含以前警告的信息,这导致将过多的冗余信息写入错误日志。使用基于行或混合格式的二进制日志记录时可能会出现此问题。

    此问题的解决方法是在处理下一个跳过的事件之前清除这些警告。此外,无论 的值如何,跳过的事件现在都以相同的方式处理binlog_format,只要 log_warnings系统变量的值大于 1,跳过的错误总是会导致将警告写入错误日志。(漏洞#12776842)

  • 重要更改: 服务器系统变量 profilinghave_profilingprofiling_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)InnoDBFULLTEXTFULLTEXT

  • InnoDB: 在线期间标记伪造的重复键错误时发生断言失败ALTER TABLE。此问题只发生在缺少主键和任何二级索引的表中。此补丁修复了断言失败,但未修复伪造的重复密钥错误,报告为 Bug#14723456。(漏洞 #14712710)

  • InnoDB: memcachedInnoDB 插件 现在可以处理底层字符集为多字节的表。(漏洞 #14711015,漏洞 #67076)

  • InnoDB: 如果CREATE TABLE语句因磁盘已满错误而失败,则操作期间分配的一些内存未正确释放。(漏洞 #14708715)

  • InnoDB:对包含索引的表 的ALTER TABLE操作 可能导致服务器因断言错误而停止。该修复导致对此类表的所有操作都使用该 子句的表复制行为。(漏洞 #14681198)InnoDBFULLTEXTALTER TABLEALGORITHM=COPY

  • InnoDB: 如果服务器在执行 包含 索引TRUNCATE TABLE表时崩溃,则在崩溃恢复期间可能会发生更多错误,从而阻止服务器重新启动。(漏洞 #14676345)InnoDBFULLTEXT

  • 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 TABLEInnoDB该问题影响表,其中交换列在单表 外键 关系中相互引用。数据字典可能处于不一致状态,其中表在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) FROM table WHERE pk_column_2 = constant

  • 复制: 使用多线程从站时,如果所有工作线程都处于忙碌状态,则内部 MTS 循环缓冲区的清理可能会失败,从而导致缓冲区满和从站失败。(漏洞 #14710881)

  • 复制:FLUSH LOGS并行 执行COMMIT可能导致服务器挂起。(漏洞 #14640486)

  • 复制: 当调用 whilegtid_mode 设置为 时OFF,该 SQL_THREAD_WAIT_AFTER_GTIDS()函数无限期等待,除非指定了超时。在后一种情况下,该函数可能会返回不正确的值。现在,当 gtid_modeisOFFSQL_THREAD_WAIT_AFTER_GTIDS()总是 NULL按预期返回 。(漏洞 #14640065)

  • 复制: 部分失败GRANTREVOKE语句在主从上的处理方式并不总是相同。现在,只要发生错误,我们就会记录一个事件事件,即使它只是部分错误,也会显示一条消息,说明需要手动协调。(漏洞 #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)InnoDBNULLNULL

  • 物化半连接的补丁导致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 dbname当 包含多个反引号 ( ) 字符时,可能会因 未知数据库而失败。(漏洞 #14645196)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 impossible_condition 在存储例程中使用时可能无法正常运行。(漏洞 #14601802)

    参考资料:此问题是 Bug #11752097 的回归。

  • 较小的 值max_sort_length 可能会为整数、小数、浮点或时间数据类型产生不正确的结果。对于那些数据类型,现在 max_sort_length将被忽略。(漏洞#14596888)

  • 将 GNU配置选项转换为CMake等效项 的configure.pl脚本 为和 选项 生成了错误输出 。它现在忽略了这些选项。(漏洞 #14593123)--with-client-ldflags--with-mysqld-ldflags

  • 使用半连接具体化执行时,带有子查询和ORDER BYLIMIT子句的查询返回的行数少于预期。(漏洞 #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系统变量不包括在6464 位系统上编译的服务器二进制文件的值。(漏洞 #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)