FreeBSD 10 上嘈杂的编译器警告被静音。(漏洞#18790490)
-
旧 OS X 和 XCode 版本的CMake解决方法已被删除。在 OS X 上,编译始终使用 Clang,即使对于 32 位构建也是如此。
现在支持 OS X 10.8 及更高版本的 OS X 编译,使用 XCode 5 及更高版本。旧版本的编译可能有效,但不受支持。(漏洞 #18510941)
-
以前, CMake选项在调试构建时默认打开,在发布构建时默认关闭,并 在使用 GCC 构建时启用。 这使得在某些情况下启用变得很麻烦,例如在使用 Clang 进行编译时。
MYSQL_MAINTAINER_MODE
MYSQL_MAINTAINER_MODE
-Werror
-Werror
现在,
MYSQL_MAINTAINER_MODE
在使用 GCC 编译调试版本时默认启用,并且 无论使用 GCC 还是 Clang 都MYSQL_MAINTAINER_MODE
启用 。只需 在运行 CMake-Werror
时明确设置即可启用Clang 。此外,修复了 Clang 3.4 报告的一些编译警告,使得使用. (漏洞 #18313717)-Werror
-DMYSQL_MAINTAINER_MODE=1
-Werror
构建支持已修改,以便为 Clang 生成与gcc相同的警告。(漏洞#17959689)
编译器的CMake配置为
Clang
在 Linux 上构建设置了更合适的标志。具体来说,-g -fno-omit-frame-pointer -fno-strict-aliasing
现在补充。(漏洞 #17633291)
复制: 变量
binlogging_impossible_mode
现在有一个名为 的别名binlog_error_action
,这是首选名称。binlogging_impossible_mode
现在已弃用。(漏洞 #19507567)复制:系统变量 的全局范围
sql_log_bin
已被弃用,现在只能在会话范围内设置此变量。该语句SET GLOBAL SQL_LOG_BIN
现在产生一个错误。仍然可以读取 的全局值sql_log_bin
,但这样做会产生警告。您应该立即采取行动,从您的应用程序中删除任何对读取此值的依赖;sql_log_bin
MySQL 8.0 中删除了全局范围(缺陷 #67433,缺陷 #15868071)OLD_PASSWORD()
已弃用,但在调用时未产生任何警告。(错误#73376,错误#19285177)
yaSSL 已升级到版本 2.3.5。(错误#19695101,错误#20201864)
-
MySQL Commercial Server 的链接 OpenSSL 库已从版本 1.0.1h 更新到版本 1.0.1j。http://www.openssl.org/news/vulnerabilities.html中描述了新版本中修复的问题 。
此更改不影响 Oracle 生成的 MySQL Community 构建的 MySQL Server,它使用 yaSSL 库。(错误#74174,错误#19717832)
-
InnoDB: 一个
ALTER TABLE
操作提出了一个断言。当从字典缓存中删除外键对象时,从 rb-tree 中删除了不正确的外键对象。(漏洞 #19908343)参考:这个问题是 Bug #18806829 的回归。
InnoDB: 在调试版本中,将
innodb_limit_optimistic_insert_debug
调试配置选项设置为 1 会导致无限的 B 树页面拆分。(缺陷 #19904003,缺陷 #74605)InnoDB: 该
dict_set_corrupted()
函数试图SYS_INDEXES
错误地更新数据字典表的聚簇索引。(漏洞 #19584379)-
InnoDB: 校验和值为零的页面被错误地视为空页面。只有当校验和值和 LSN 字段值为零时,页面才应被认为是空的。(缺陷 #19500258,缺陷 #73689)
参考资料:此问题是 Bug #17335427 的回归。
InnoDB: 当操作更改列名的大小写
InnoDB
数据字典未更新ALTER TABLE ... CHANGE COLUMN
(漏洞#19465984)InnoDB: 内存访问冲突导致 mysqld
fts_optimize_thread
终止 。(漏洞 #19314480)InnoDB: 从函数调用以对临时表执行操作的过程导致服务器停止。(漏洞 #19306524)
InnoDB: 尝试在启动服务器后关闭服务器
innodb_force_recovery=6
导致挂起。(缺陷 #19265668,缺陷 #73341)InnoDB:
COMMIT
与全文搜索相关 的(漏洞 #18503734)InnoDB: 如果数据库在 MySQL 服务器上使用大写字母命名
lower_case_table_names=2
(在 OS X 上是默认设置), 内部系统表 (InnoDB
中指定的方式存储数据库名称,但在磁盘上以小写形式存储名称。在崩溃恢复期间,大小写不匹配导致将表空间 文件标记为丢失的冲突。此错误的补丁在崩溃恢复时将数据库名称转换为小写。(错误#18412598,错误#72043)InnoDB
SYS_TABLES
.ibd
InnoDB: 在调试版本中,
InnoDB
锁定监视器在DROP TABLE
操作后断言,并且InnoDB
监视器在buf_page_get_gen
. (错误#18062698、错误#71343、错误#18173184、错误#68116)InnoDB:
CREATE TABLE
启用时失败 的innodb_strict_mode
时成功而没有打印警告innodb_strict_mode
。(漏洞 #17852083)InnoDB: 为了显式缓存一致性,在头部添加了写屏障,
os_thread_create_func()
在断言代码中添加了读屏障rw_lock_free_func()
。(错误#13364876、错误#62692、错误#18870970、错误#72809)-
InnoDB: 针对 Bug #16963396 / MySQL Bug #69477 的 MySQL 5.6.20 补丁将重做日志
BLOB
写入的大小限制为重做日志文件大小的 10%。此限制已放宽。重做日志BLOB
写入现在限制为总重做日志大小 (innodb_log_file_size
*innodb_log_files_in_group
) 的 10%。因此,
innodb_log_file_size
*innodb_log_files_in_group
应该比BLOB
表行中的最大数据大小加上其他可变长度字段( 、 和类型字段)的长度VARCHAR
大VARBINARY
10TEXT
倍。如果innodb_log_file_size
*innodb_log_files_in_group
已经足够大或者您的表不包含任何BLOB
数据,则无需执行任何操作。(错误#73707,错误#19498877)参考资料:另请参阅:Bug #16963396。
分区: 当在分区中使用多个列时
KEY
,它们的顺序可能有助于确定行所在的分区。通过ALTER TABLE
使用ALGORITHM=INPLACE
可能会导致在分区中放置行时不一致;换句话说,在这样的操作之前插入的行被放置在一个分区中,但之后插入的同一行被放置在不同的分区中。出于这个原因,当该索引也用作分区表的基础时,不再允许在线更改多列索引的顺序KEY
;相反,您必须使用复制ALTER TABLE
来执行更改。(漏洞#17896265)复制: 当使用
WITH_DEBUG
启用该选项编译的 MySQL 版本时,使用expire_logs_days
清除二进制日志会导致重启导致服务器崩溃。此问题在修复错误 #17283409 后出现。该修复程序确保current_thd
在调用 之前进行检查DEBUG_SYNC()
。(漏洞 #19553099)复制: 有时从属 I/O 线程会在当前中继日志中留下部分组,例如当它被杀死或停止时。重新启动后,一个新的中继日志在轮换时创建,并且从主服务器复制一对
ROTATE_EVENT
并FORMAT_DESCRIPTION_EVENT
写入新的中继日志。在使用多线程slave时,在relay log中应用组的剩余部分时遇到了错误1755等问题。此修复确保如果MASTER_AUTO_POSITION
启用,则工作人员回滚部分组,完成其工作,然后应用该组的新的完整副本。如果MASTER_AUTO_POSITION
禁用,工作人员不会回滚部分组。(漏洞 #19545298)复制: 损坏的标头长度
FORMAT_DESCRIPTION_LOG_EVENT
可能导致服务器意外停止。这是因为FORMAT_DESCRIPTION_LOG_EVENT
如果标头长度太短,则会被视为无效。(漏洞 #19145712)复制: 启动日志事件未被从站检查最小大小。(漏洞 #19145698)
复制: 当使用
slave_type_conversions
启用的基于行的复制时,连续有多个二进制日志Rows_log_event
导致崩溃。slave_type_conversions
这是因为过早发布了作为流程一部分生成的临时表 此修复确保临时表不会过早释放,还确保长事务不会导致内存不足错误。(错误#18770469,错误#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)Replication: 重启MySQL并
relay_log_recovery
启用从崩溃中恢复时,如果SQL线程从未启动过,则开始恢复的位置未正确初始化,因为Relay_Master_Log_File
丢失。此修复可确保在这种情况下,从第一个中继日志文件开始,从主服务器搜索每个中继日志以查找轮换事件,该事件指定复制从何处开始。然后使用此轮换事件来设置 SQL 线程Relay_Master_Log_File
,Relay_Log_Pos
恢复将照常进行。(错误#73039,错误#19021091)复制: 当使用 GTID 进行复制并
MASTER_AUTO_POSITION
启用时,如果从服务器请求的 GTID 已被主服务器清除,则主服务器将发送所有可用的 GTID。发生这种情况是因为 master 读取所有可用的二进制日志并搜索包含 GTID 的二进制日志,而该 GTID 不包含在 和 的联合gtid_executed
中gtid_retrieved
。如果找到这样的 GTID,master 将从该位置开始发送信息。在 slave 和 set 的gtid_executed
并gtid_retreived
集不包含 master 的gtid_purged
设置,奴隶会期待已经被主人清除的GTID。此修复可确保在这种情况下,从站的 I/O 线程会因错误“主站已清除包含从站所需的 GTID 的二进制日志”而中止。(错误#73032,错误#19012085)复制: 由于 mysqlbinlog为每个事件读取调用 localtime(),而这又调用 stat(/etc/localtime),因此导致了内核互斥锁争用。此修复确保mysqlbinlog使用 localtime_r(),它经过优化以存储只读时区内部结构。这也意味着mysqlbinlog 现在在处理开始时建立时区,您不能在处理过程中更改它。这与 MySQL 服务器的行为相同。(错误#72701,错误#18808072)
Microsoft Windows: 在 Windows 上,替换实用程序不起作用。(漏洞 #16581605)
Debian 软件包安装的 AppArmor 配置文件缺少成功启动服务器所需的条目。(缺陷号 20057782)
InnoDB
innodb_checksum_algorithm
如果在操作期间修改了系统变量的值,则表校验和计算可能会产生不正确的结果 。(漏洞#19931177)对于与半连接一起使用的物化内部临时表,优化器可以向其添加索引,但随后使用不适当的查找策略,导致服务器退出。(错误#19695490,错误#21782943)
GROUP BY
或列ORDER BY
上CHAR(0) NOT NULL
可能导致服务器退出。(漏洞 #19660891)激活
validate_password
插件并启用字典查找后,将用户定义的变量传递给PASSWORD()
可能会导致服务器退出。(漏洞 #19388163)Debian 软件包是使用复杂 的字符集集构建的,而不是
all
字符集集。(漏洞 #19363801)如果转储目标位于 NFS 安装上,则mysqldump无法报告磁盘已满错误。(漏洞 #18817867)
以前,
InnoDB
允许创建引用用户没有足够权限的父表的外键。现在,用户必须至少具有父表的SELECT
、INSERT
、UPDATE
、DELETE
或REFERENCES
中的一种权限才能创建外键。(错误#18790730,错误#11746917)InnoDB
在全文索引初始化期间,将包含全文列的表从 Windows 复制到 Linux 会导致 Linux 上的服务器退出。(错误#18285007、错误#19864963、错误#73155)在 Debian 上,apt-get upgrade没有替换存储库中的某些软件包。解决方法是首先
mysql-client
通过运行 apt-get install mysql-client手动安装或直接运行 apt-get dist-upgrade。(错误#75485,错误#20348793)在CentOS 6 上,为选项指定相对路径名
--socket
导致MySQL 启动脚本失败。(错误#74111,错误#19775856)在 Solaris 11.2 中,dtrace -V输出从 更改
Sun D
为Oracle D
,导致在 MySQL 配置期间检测 DTrace 可用性失败。(错误#73826,错误#19586917)mysql_config --libs_r生成包含链接标志的输出
libmysqlclient_r
,即使该库已在 MySQL 5.5 中删除并替换为指向底层libmysqlclient
库的符号链接。现在的输出直接指向libmysqlclient
. (这意味着不再需要为了能够使用mysql_config --libs_r而维护符号链接。)(错误 #73724,错误 #19506315)对于语句摘要计算,性能模式无法将带符号的文字数字识别为可表示的值,
?
并为应该具有相同签名的语句创建了多个摘要。现在,所有一元加号和一元减号后跟数字的实例都减少到?
摘要中。(缺陷 #73504,缺陷 #19389709)使用 Visual Studio 2013 在 Windows 上编译导致 “未解析的外部符号”错误。(错误#73461,错误#19351573)
UNION DISTINCT
子查询具体化或与临时表上的哈希索引一起使用的 某些查询 可能会产生不正确的结果或导致服务器退出。(错误#73368,错误#19297190)和函数实现包含竞争条件
IS_FREE_LOCK()
,IS_USED_LOCK()
因此当同时检查和释放用户锁时,它们可以访问释放的内存。访问释放的内存可能会导致函数返回值不正确或服务器退出。(错误#73123,错误#19070633)LOCK TABLES
有时会为隐式锁定的表获取不够强的锁。(错误#72887,错误#18913551)默认情况下错误地启用了CMake选项。(错误#72106,错误#18448743)
ENABLED_LOCAL_INFILE
使用 ODBC 格式的日期文字可能会产生不正确的查询结果。(缺陷 #69233,缺陷 #16812821)
mysql_install_db忽略默认位置的选项文件。(漏洞 #68807,漏洞 #16570238)
mysql_setpermission未能在它生成的 SQL 语句中正确引用用户名。(漏洞 #66317,漏洞 #14486004)