10bet网址
MySQL 5.6版本说明
相关的文档10bet官方网站 下载这些版本说明
PDF (Ltr)- 2.3 mb
PDF (A4)- 2.3 mb
HTML下载(TGZ)- 462.4 kb
HTML下载(邮政编码)- 0.5 mb


MySQL 5.6版本说明/ MySQL 5.6.22的更改(2014-12-01,通用可用性)

MySQL 5.6.22的更改(2014-12-01,通用可用性)

编译的笔记

  • FreeBSD 10上的编译器警告噪声被静音。(错误# 18790490)

  • CMake旧OS X和XCode版本的变通方法被移除。在OS X上,编译总是使用Clang,即使是32位版本。

    OS X 10.8及以上版本现在支持使用XCode 5及以上版本在OS X上编译。旧版本上的编译可能可以工作,但不受支持。(错误# 18510941)

  • 在此之前,MYSQL_MAINTAINER_MODECMake选项在默认情况下为调试构建打开,而在发布构建关闭,并且MYSQL_MAINTAINER_MODE引起的-Werror在使用GCC构建时启用。这使得启用它非常麻烦-Werror在某些条件下,例如用Clang编译时。

    现在,MYSQL_MAINTAINER_MODE在使用GCC编译调试版本时默认是打开的,并且MYSQL_MAINTAINER_MODEenbles-Werror无论使用GCC还是Clang。启用-Werror可以通过显式设置来实现-DMYSQL_MAINTAINER_MODE = 1运行时CMake.此外,修复了Clang 3.4报告的一些编译警告,从而可以用它构建默认的调试版本-Werror.(错误# 18313717)

  • 对构建支持进行了修改,以生成与Clang相同的警告海湾合作委员会.(错误# 17959689)

  • CMake配置铿锵声编译器为在Linux上构建设置更合适的标志。具体地说,- g -fno-omit-frame-pointer -fno-strict-aliasing现在补充道。(错误# 17633291)

弃用和删除说明

  • 复制:全局范围为sql_log_bin系统变量已弃用,该变量现在只能用会话作用域设置。该声明集全球SQL_LOG_BIN现在产生一个错误。的全局值仍然是可能的sql_log_bin,但这样做会产生警告。您现在应该采取行动,从您的应用程序中删除对读取该值的任何依赖;全球范围sql_log_bin在MySQL 8.0中删除。(Bug #67433, Bug #15868071)

安全记录

  • yaSSL升级到2.3.5版本。(Bug #19695101, Bug #20201864)

  • MySQL商业服务器的链接OpenSSL库已经从1.0.1h版本更新到1.0.1j版本。新版本中修复的问题描述在http://www.openssl.org/news/vulnerabilities.html

    此更改不影响oracle生产的MySQL服务器的MySQL社区构建,它使用的是yaSSL库。(Bug #74174, Bug #19717832)

增加或更改的功能

错误修复

  • InnoDB:一个ALTER TABLE操作引发断言。当一个外键对象从字典缓存中删除时,一个不正确的外键对象将从rb-tree中删除。(错误# 19908343)

    这个问题是:Bug #18806829的回归。

  • InnoDB:在调试版本中,设置innodb_limit_optimistic_insert_debug调试配置选项为1导致无限b树页面分裂。(Bug #19904003, Bug #74605)

  • InnoDB:dict_set_corrupted ()类的聚集索引SYS_INDEXES数据字典表错误。(错误# 19584379)

  • InnoDB:校验和值为0的页被错误地当作空页处理。只有当一个页面的校验和值和LSN字段值为零时,它才应该被认为是空的。(Bug #19500258, Bug #73689)

    参考文献:这个问题是:Bug #17335427的回归。

  • InnoDB:InnoDB时未更新数据字典ALTER TABLE……改变列操作更改了列名的大小写。(错误# 19465984)

  • InnoDB:导致内存访问冲突fts_optimize_thread而且mysqld终止。(错误# 19314480)

  • InnoDB:从函数调用的一个过程在临时表上执行操作,导致服务器停止。(错误# 19306524)

  • InnoDB:启动服务器后,试图关闭服务器innodb_force_recovery = 6结果被吊了起来。(Bug #19265668, Bug #73341)

  • InnoDB:一个提交全文搜索相关操作导致分词错误。(错误# 18503734)

  • InnoDB:如果数据库在MySQL服务器上使用大写字母命名lower_case_table_names = 2(这在OS X上是默认的),InnoDB控件中指定的数据库名称InnoDB内部系统表(SYS_TABLES),但将名称以小写形式存储在磁盘上。在崩溃恢复期间,大小写不匹配导致了标记表空间的冲突.ibd文件不见了。此bug的补丁在崩溃恢复时将数据库名称转换为小写。(Bug #18412598, Bug #72043)

  • InnoDB:在调试版本中,InnoDB之后断言的锁监视器删除表操作,InnoDB中的断言buf_page_get_gen.(Bug #18062698, Bug #71343, Bug #18173184, Bug #68116)

  • InnoDB:一个创建表操作失败时innodb_strict_mode启用成功而不打印警告是什么时候innodb_strict_mode是禁用的。(错误# 17852083)

  • InnoDB:的头部添加了写屏障,以实现显式的缓存一致性os_thread_create_func ()的断言代码中添加了读取障碍rw_lock_free_func ().(Bug #13364876, Bug #62692, Bug #18870970, Bug #72809)

  • InnoDB:MySQL 5.6.20补丁为Bug #16963396 / MySQL Bug #69477限制重做日志的大小写入重做日志文件大小的10%。这一限制已经放宽。重做日志写入现在限制在10%重做日志总大小innodb_log_file_sizeinnodb_log_files_in_group).

    作为一个结果,innodb_log_file_sizeinnodb_log_files_in_group应该比最大的大10倍吗在表的行中发现的数据大小加上其他可变长度字段的长度(VARCHARVARBINARY,文本类型字段)。无需处理innodb_log_file_sizeinnodb_log_files_in_group是否已经足够大,或者表中是否包含no数据。(Bug #73707, Bug #19498877)

    参考文献:参见Bug #16963396。

  • 分区:中使用多个列时关键分区时,它们的顺序可能有助于确定行放置在哪个分区中。改变这个顺序的方法是ALTER TABLE使用算法=原地在分区中放置行时可能导致不一致;换句话说,在这种操作之前插入的行被放在一个分区中,而在之后插入的同一行被放在另一个分区中。由于这个原因,当一个多列索引也被用作分区表的基数时,不再允许在线更改该索引的顺序关键;相反,您必须使用复制ALTER TABLE执行更改。(错误# 17896265)

  • 复制:当使用已编译的MySQL版本时WITH_DEBUG选项启用时,使用expire_logs_days清除二进制日志导致重启服务器崩溃。这个问题在修复Bug #17283409之后出现。该修复确保current_thd在调用之前检查DEBUG_SYNC ().(错误# 19553099)

  • 复制:有时从I/O线程在当前中继日志中留下部分组,例如当它被杀死或停止时。在它重新启动后,一个新的中继日志被创建在旋转和一对ROTATE_EVENT而且FORMAT_DESCRIPTION_EVENT从主服务器复制并写入新的中继日志。在使用多线程从机时,在中继日志中应用组的其余部分时,会遇到错误1755等问题。此修复确保如果MASTER_AUTO_POSITION,那么工作程序回滚部分组,完成它的工作,然后应用组的新的完整副本。如果MASTER_AUTO_POSITION禁用时,worker不回滚分部组。(错误# 19545298)

  • 复制:已损坏的标头长度FORMAT_DESCRIPTION_LOG_EVENT可能导致服务器意外停止。这是由于FORMAT_DESCRIPTION_LOG_EVENT如果标题长度过短则被认为无效。(错误# 19145712)

  • 复制:从库没有检查启动日志事件的最小大小。(错误# 19145698)

  • 复制:使用基于行的复制时slave_type_conversions启用,一个二进制日志有多个Rows_log_event接连造成了撞车事故。的组成部分生成了临时表slave_type_conversions进程被过早释放。此修复可确保临时表不会过早释放,还可确保长事务不会导致内存不足错误。(Bug #18770469, Bug #19704825)

  • 复制:当使用从主服务器手动复制的二进制日志文件时,例如,为了避免I/O线程读取延迟,多线程从服务器会生成错误1755。因为Previous_gtids使用主节点记录日志事件server_id而不是奴隶的server_id,没有正确跳过以前的事件。此修复确保事件在Previous_gtids日志事件总是被跳过,无论它们是来自中继日志(在从机上生成)还是来自二进制日志(在主机上生成并作为中继日志手动复制到从机上)。(错误# 17812024)

  • 复制:从较早版本的MySQL主版本(如4.1版本)复制时,不对事件使用校验和。复制到运行较新版本MySQL的从服务器,如5.6版本,它有slave_sql_verify_checksum默认启用意味着来自旧主系统的事件的最后4个字节被错误地解释为校验和。现在会生成一个警告,要避免这种情况,请设置slave_sql_verify_checksum = 0禁用从服务器上的校验和。(错误# 17276183)

  • 复制:重新启动MySQL时relay_log_recovery启用从崩溃中恢复,如果SQL线程从未启动,则启动恢复的位置没有正确初始化,因为Relay_Master_Log_File失踪了。此修复确保在这种情况下,从第一个中继日志文件开始的每个中继日志都从主服务器搜索旋转事件,该事件指定复制从哪里开始。然后使用这个rotate事件设置SQL线程的Relay_Master_Log_File而且Relay_Log_Pos恢复仍在正常进行。(Bug #73039, Bug #19021091)

  • 复制:当使用gtid进行复制时MASTER_AUTO_POSITION如果slave请求的gtid已经被master清除,那么master将发送所有可用的gtid。发生这种情况的原因是,master读取所有可用的二进制日志并搜索包含GTID的二进制日志,而GTID没有包含在的并集中gtid_executed而且gtid_retrieved.如果找到这样的GTID,主机就从该位置开始发送信息。在奴隶联盟的情况下gtid_executed而且gtid_retreived套子里没有主人的gtid_purged设置,奴隶将期待已经被主人清除的gtid。此修复确保在这种情况下,从服务器的I/O线程会中止,并出现“主服务器已清除包含从服务器所需gtid的二进制日志”的错误。(Bug #73032, Bug #19012085)

  • 复制:导致内核互斥锁争用的原因是mysqlbinlog正在为每个读取的事件调用localtime(),然后调用stat(/etc/localtime)。此修复确保mysqlbinlog使用localtime_r(),它被优化为存储只读时区内部结构。这也意味着mysqlbinlog现在在处理开始时建立时区,您不能在处理期间更改它。这与MySQL服务器的行为相同。(Bug #72701, Bug #18808072)

  • 微软的Windows操作系统:在Windows上,取代公用事业没有发挥作用。(错误# 16581605)

  • Debian包安装的AppArmor配置文件缺少成功启动服务器所需的条目。(错误# 20057782)

  • InnoDB的值,表校验和计算可能产生不正确的结果innodb_checksum_algorithm操作过程中修改了系统变量。(错误# 19931177)

  • 对于使用半连接的物化内部临时表,优化器可以向其添加索引,但随后使用不适当的查找策略,导致服务器退出。(Bug #19695490, Bug #21782943)

  • 集团命令在一个CHAR(0)不是零列可能通向服务器出口。(错误# 19660891)

  • validate_password激活插件并启用字典查找,将用户定义的变量传递给密码()可能导致服务器退出。(错误# 19388163)

  • Debian包是使用复杂的字符集,而不是所有字符集的集合。(错误# 19363801)

  • , mysqldump如果转储目标位于NFS挂载上,则无法报告磁盘已满错误。(错误# 18817867)

  • 在此之前,InnoDB允许创建一个外键,该外键引用了用户没有足够权限的父表。现在,用户必须至少有一个选择插入更新删除,或参考文献父表创建外键的特权。(Bug #18790730, Bug #11746917)

  • 复制InnoDB包含从Windows到Linux的全文列的表在全文索引初始化时导致Linux上的服务器退出。(Bug #18285007, Bug #19864963, Bug #73155)

  • 在Debian上,apt-get升级没有从存储库中替换某些包。解决方法是首先手动安装mysql客户机通过运行apt-get安装mysql客户机或者直接运行apt-get dist-upgrade.(Bug #75485, Bug #20348793)

  • 在CentOS 6上,指定相对路径名——套接字选项导致MySQL启动脚本失败。(Bug #74111, Bug #19775856)

  • 在Solaris 11.2中,dtrace - v输出从阳光D甲骨文D,导致在MySQL配置过程中检测DTrace可用性失败。(Bug #73826, Bug #19586917)

  • mysql_config——libs_r生成包含链接标志的输出libmysqlclient_r尽管这个库在MySQL 5.5中被删除了,取而代之的是一个指向底层的符号链接libmysqlclient图书馆。输出现在直接引用libmysqlclient.(这意味着不再需要为了能够使用而维护符号链接mysql_config——libs_r.) (Bug #73724, Bug #19506315)

  • 对于语句摘要计算,性能模式未能将有符号文字数字识别为表示的值?并为应该具有相同签名的语句创建多个摘要。现在所有的一元加号和一元减号的实例都简化为?在消化。(Bug #73504, Bug #19389709)

  • 在Windows上使用Visual Studio 2013编译会产生解析的外部符号错误。(Bug #73461, Bug #19351573)

  • OLD_PASSWORD ()已弃用,但在调用它时没有产生警告。(Bug #73376, Bug #19285177)

  • 子查询具体化的某些查询或结合不同的与临时表上的散列索引一起使用可能会产生不正确的结果或导致服务器退出。(Bug #73368, Bug #19297190)

  • IS_FREE_LOCK ()而且IS_USED_LOCK ()函数实现包含一个竞态条件,因此在并发检查和释放用户锁时,它们可以访问已释放的内存。访问已释放的内存可能导致函数返回值错误或服务器退出。(Bug #73123, Bug #19070633)

  • 锁表有时为隐式锁定的表获得了不够强的锁。(Bug #72887, Bug #18913551)

  • ENABLED_LOCAL_INFILECMake选项默认情况下未正确启用。(Bug #72106, Bug #18448743)

  • 使用odbc格式的日期文本可能会产生不正确的查询结果。(Bug #69233, Bug #16812821)

  • mysql_install_db忽略默认位置中的选项文件。(Bug #68807, Bug #16570238)

  • mysql_setpermission未能在其生成的SQL语句中正确引用用户名。(Bug #66317, Bug #14486004)