-
用于 MySQL Commercial Server 的链接 OpenSSL 库已更新至版本 1.0.1s。有关此版本中修复的问题的说明,请参阅 http://www.openssl.org/news/vulnerabilities.html。
此更改不影响 Oracle 生成的 MySQL Community 构建的 MySQL Server,它使用 yaSSL 库。(错误#22685885,错误#22923458)
-
MySQL 客户端程序现在支持一个
--ssl-mode
选项,使您能够指定与服务器的连接的安全状态。如果未指定该选项,则默认值为DISABLED
(建立未加密的连接)。--ssl-mode=REQUIRED
可以指定需要加密连接,或者如果无法获得加密连接则失败。这些客户端支持
--ssl-mode
: mysql、mysqladmin、 mysqlcheck、mysqldump、 mysqlimport、mysqlshow、 mysqlpump、mysqlslap、 mysqltest、mysql_upgrade。有关详细信息,请参阅 加密连接的命令选项。
笔记在 MySQL 5.7 及更高版本中,C 客户端库为要求加密连接提供本机支持:调用
mysql_options()
C API 函数,传递MYSQL_OPT_SSL_MODE
值为SSL_MODE_REQUIRED
. 在 MySQL 8.0 中,客户端库不提供此类支持,因为这样做会破坏与该系列中先前库版本的二进制兼容性。需要加密连接的客户端必须自己实现逻辑。为了在 MySQL 8.0 中要求加密连接,标准的 MySQL 客户端程序使用这种技术:如果
--ssl-mode=REQUIRED
指定,客户端程序打开 SSL,连接到服务器,并检查生成的连接是否加密。如果不是,则客户端会出错并退出。必须能够要求加密连接的第三方应用程序可以使用相同的技术。有关详细信息,请参阅 mysql_ssl_set()。
创新数据库;分区:
OPTIMIZE TABLE
重建分区 时InnoDB
,将生成的分区表空间文件(*.ibd
文件)放置在默认数据目录中,而不是使用该DATA DIRECTORY
选项指定的目录。(错误#75112,错误#20160327)InnoDB:在多个连接上 运行
REPLACE
操作导致挂起。(缺陷 #22530768,缺陷 #79185)InnoDB:
InnoDB
MySQL 在同步 全文索引缓存 时停止(错误#22516559、错误#16510576、错误#73816)-
InnoDB: 操作
CREATE TABLE ... DATA DIRECTORY
创建表失败而innodb_flush_method
设置为O_DIRECT
。(缺陷 #22180006,缺陷 #79200)参考:这个问题是 Bug #21113036 的回归。
InnoDB: 该
innodb_open_files
设置可能超过打开的文件限制。(漏洞 #22111472)-
复制: 发出
STOP SLAVE
导致从服务器读取数据包的虚假消息写入错误日志期间丢失与 MySQL 服务器的连接。通过此修复,当与主站的连接丢失时,将abort_slave
检查标志并仅在未设置标志时打印错误消息。(缺陷 #22305605,缺陷 #79504)参考资料:另请参阅:Bug #12977988、Bug #22290309。
复制: 当一个多线程slave因错误停止时,同样的错误信息被打印了3次。现在,SQL 线程的 kill acceptance 状态被保存下来,并且只打印一次。(缺陷 #21198611,缺陷 #77237)
复制: mysqlbinlog --verbose将BINARY和 VARBINARY数据显示 为普通字符串,导致数据中的任何单引号( “ ' ”)或反斜杠( “ \ ”)被打印出来,这让用户感到困惑,并且在反斜杠的情况下,导致跳过下一个字符。此修复使mysqlbinlog打印字符的十六进制值(单引号为 “ \x27 ” ,反斜杠为“ \x5c ”)。(缺陷号 20836250)
复制:当变量 设置为“ ”时 测试用例
main.merge
失败, 因为服务器试图在子表打开之前获取用于创建表的信息。通过此修复,服务器将跳过获取表中情况的信息。(缺陷 #20574550,缺陷 #75976)binlog_format
ROW,
-
复制: 如果对主服务器的查询产生错误并且部分结果被写入二进制日志,例如由于
DROP TABLE IF EXISTS
应用于多个表的语句会破坏外键约束,当配置了复制过滤器的从服务器遇到查询时,它可以被错误地二进制记录。这导致了错误,例如:Last_SQL_Error:查询在主从上导致了不同的错误。master 上的错误:消息(格式)='无法删除或更新父行:外键约束失败'错误代码=1217;从站错误:实际消息='无错误',错误代码=0。默认数据库:'db1'。Query: 'DROP TABLE IF EXISTS `table1` /* 由服务器生成 */'
此错误需要两个修复程序。
如果
DROP TABLE
用于删除单个表的语句失败,为避免导致此错误的部分结果,查询不会写入二进制日志。如果DROP TABLE
用于删除表列表的语句失败,则它生成的任何部分结果都会写入二进制日志并显示错误。当从站接收到按预期生成错误的查询但由于复制过滤器而被跳过时,从站错误地检查了错误。错误 #76493 的修复确保不会发生这种来自主站的预期错误与来自从站的实际错误的比较。
(错误#77684,错误#21435502)
参考资料:另请参阅:Bug #20797764、Bug #76493。
客户端握手处理期间可能会发生整数溢出,从而导致服务器退出。(漏洞 #22722946)
默认情况下,RHEL6 或更早版本的 System-V 初始化脚本无法启用该
mysqld
服务。(漏洞 #22600974)-
当
ExtractValue()
找不到提供的表达式的匹配项时,它返回NULL
而不是预期的空字符串。此问题仅影响 MySQL 5.6.28 和 5.6.29。(漏洞 #22552615)
X509 证书中不正确的主机名检查可能会导致中间人攻击。(错误#22295186,错误#22738607)
布尔模式全文搜索导致分段错误。(漏洞 #22176795)
在杀死访问它的连接的同时选择和刷新
FEDERATED
表可能会导致服务器退出。(漏洞 #21918190)GRANT PROXY
在更改系统表的定义后 执行语句mysql.user
可能会导致服务器退出。(缺陷号 21699037)某些错误消息包含生成它们的 SQL 语句的一部分,可能会暴露数据。(漏洞 #21682356)
尽管可以使用前缀创建非
#sql
临时表,但性能模式假定使用此前缀命名的表是临时的,可以忽略。Performance Schema 现在使用名称以外的表属性来标识临时表。(错误#21105475、错误#22532368、错误#79934)插件执行的帐户过滤
audit_log
错误地使用了USER()
函数命名的帐户,而不是CURRENT_USER()
函数(后者是用于身份验证的帐户)。(错误#19509471、错误#22454245、错误#77553)NULL
对参数到准备好的语句的 字符集转换操作可能会导致服务器退出。(漏洞 #18823979)没有为具有相等条件的查询选择松散索引扫描。(漏洞 #18109609)
如果与 5.7 数据目录一起使用,则 MySQL 5.6 服务器在启动期间退出,因为
mysql.plugin
表 的 5.7 中的更改MyISAM
从InnoDB
. 在这种情况下,现在会发生安全关机。(错误#79290,错误#22216779)-
对于导致违反约束的操作,
INSERT
在 使用关键字时会报告错误而不是警告 。(缺陷 #78853,缺陷 #22037930)UPDATE
FOREIGN KEY
IGNORE
参考资料:另请参阅:Bug #23135731。
对于某些查询,当范围扫描的成本相同或更低时,会在范围扫描上选择索引合并访问计划。(错误#77209,错误#21178196)
当内部字符串操作生成
NULL
指针而不是空字符串时,某些查询可能会引发断言。(错误#74500、错误#19875294、错误#13358486、错误#79988、错误#22551116)EXPLAIN
forSELECT ... FOR UPDATE
语句获取锁。(错误#72858,错误#18899860)Processlist 状态信息未正确更新,
LOAD DATA
并且可能显示与 不同的状态executing
。(缺陷 #69375,缺陷 #16912362)