从MySQL Server 5.7.12开始,我们正在引入快速插件的概念。开箱即用,5.7.12遵循与我们当前发布过程相同的稳定性承诺,但它还允许使用具有附加功能的插件来非常容易地安装。第一个用MySQL Server 5.7.12发布的插件是新的X插件,它公开了一种名为X协议的新通信协议。
X协议的扩展功能使我们能够在我们的MySQL连接器和客户端应用程序中提供新的X DevAPI,就像新的MySQL壳。目标的目标x devapi.是支持一个名为Document Collections的新架构对象类型以及关系和组合的文档存储/关系功能。现在开发人员,设计师和DBA可以部署实现文档存储,关系或混合文档/关系模型的MySQL数据库。有关如何10bet官方网站使用MySQL作为文档存储的文档,请参阅使用MySQL作为文档存储。
不相容的变化:加载键控插件,
- 插件加载
使用选项。以前,默认值- 插件加载
选项值是名称keyring_file.
插件库文件。现在默认值为空。重要的Innodb.
数据静止加密需要keyring_file.
插件要在此之前加载Innodb.
初始化,因此这种默认变化- 插件加载
值引入了从5.7.11升级到5.7.12或更高的不兼容性。已加密的管理员Innodb.
表格空间必须采取明确行动,以确保继续加载keyring_file.
plugin:使用- 插件加载
命名插件库文件的选项。例如,在插件库文件后缀的平台上所以
,在服务器中使用这些行我.CNF.
文件:(mysqld) early-plugin-load = keyring_file.so
在其他平台上,根据需要调整文件名后缀。有关更多信息,请参阅mysql钥匙扣。
(Bug #80413, Bug #22748738)
MySQL企业版现在包括一个
keyring_okv.
插件,使用Oracle键Vault作为键控存储的后端。有关更多信息,请参阅mysql钥匙扣。
InnoDB:这
Innodb.
数据AT-REST加密功能现在支持Oracle密钥库进行加密密钥管理。Oracle Key Vault支持依赖于keyring_okv.
插件可在MySQL Enterprise Edition中使用。安全且强大的加密密钥管理解决方案,例如OKV对于安全性和符合各种安全标准至关重要。有关更多信息,请参阅InnoDB数据 - 休闲加密。MySQL商业服务器的链接OpenSL库已更新为1.0.1版。有关此版本中修复的问题的描述,请参阅http://www.openssl.org/news/vulnerabilities.html.。
此更改不会影响MySQL Server的Oracle生成的MySQL社区构建,它使用yassl库。(bug#22685885,bug#22923458)
对于许多疑问
或者
条件,现在优化器现在更加内存,并且不太可能超过所施加的内存限制Range_Optimizer_Max_Mem_Size.
系统变量。另外,该变量的默认值已从1536000提出到8388608.(bug#79450,bug#22283790)
InnoDB;分区:
插入
和选择
针对一个分区的语句Innodb.
并不总是正确处理生成列的表。(bug#22444530)参考:参见:Bug #21776494, Bug #21824564, Bug #21864838。
InnoDB:当复制从站尝试访问加密表时,启动时返回错误。用于撰写主键名称的服务器UUID未持久地持续到表空间数据文件,从而导致使用不正确的主密钥。(bug#22912582)
InnoDB:在调试构建中,不必要的
buf_block_align()
呼叫可能导致锁定顺序违规。DML操作导致页面不匹配断言由于相同buf_block_align()
调用。(Bug #22709463, Bug #21321238)InnoDB:一个
更改表...添加列
对具有虚拟列的表的操作将引发断言。(错误# 22650296)InnoDB:表空间加密代码中不必要的比较导致编译器警告。(错误# 22645816)
InnoDB:
innodb_sys_tablespaces.
可以报告不正确Allocated_size.
和文件大小
在数据目录之外创建的一般表空间的值。这i_s_dict_fill_sys_tablespaces ()
函数生成了一个不正确的远程文件路径。(bug#22590095,bug#80070)InnoDB:在Debug构建中,具有虚拟列的表上的更新操作提出了一个断言。(bug#22572997)
InnoDB:修改了
Innodb.
在使用Microsoft Visual Studio 2015编译时处理警告的代码。(Bug #22542547, Bug #79964)InnoDB:跑步
代替
对多个连接的操作导致挂起。(Bug #22530768, Bug #79185)InnoDB:与表空间加密有关的操作导致FreeBSD挂起。(bug#22520464,bug#79901)
InnoDB:MySQL在同步时停滞不前
Innodb.
全文索引缓存。(Bug #22516559, Bug #16510576, Bug #73816)InnoDB:一种
创建表...数据目录
操作无法创建表格innodb_flush_method.
被设定为o_direct.
。(bug#22180006,bug#79200)参考:此问题是回归:Bug#21113036。
InnoDB:在调试版本中,缓冲池调整大小的大小将导致分段违规。这
buf_pool_resizing
变量未受到保护。(错误# 22179317)InnoDB:这
innodb_open_files
设置可能超过打开的文件限制。(bug#22111472)InnoDB:
Innodb.
尝试CRC32.
校验和验证而不是Innodb.
之后CRC32.
校验和验证失败,导致重复CRC32.
校验和验证尝试。校验和验证订单现在动态优化。感谢Daniel Black为补丁。(bug#79725,bug#22452597)复制:当没有二进制日志的从服务器连接到Group Replication主服务器时,它会以运行查询时出错的输出中没有关于故障的信息
显示从站状态
或者在replication_applier_status_by_worker
表格(错误# 22699395)复制:设置
Relay_log_recovery = 1
由于未初始化的存储库,在恢复期间生成错误。(bug#22523554)复制:发行
停车奴隶
造成一个假的从服务器读取数据包时出错:查询期间丢失与MySQL Server的连接要写入错误日志的消息。有了这个修复,当与主服务器的连接丢失时,abort_slave
标记被检查并且错误消息只在没有设置标记的情况下被打印。(Bug #22305605, Bug #79504)参考文献:另见:bug#12977988,bug#22290309。
复制:日志含义禁用二进制日志时,指定的GTID
gtid_next.
控件引起的空事务提交时开始
声明被保存在gtid_executed
当它不应该是。启用二进制日志时不会发生这种情况。现在,当
gtid_next.
设置为当前会话,开始
提出了一个er_cant_do_implic_commit_in_trx_when_gtid_next_is_set.任何事务内的错误,无论是否启用二进制日志记录,因为该语句会导致隐式提交。在本例中,GTID指定gtid_next.
没有保存在gtid_executed
。(错误# 22130929)复制:配置复制但未在从站上启动时,变量
目前_EXECUTING_GTID.
未正确初始化,但如果性能模式将使用它replication_applier_status_by_worker
验证表,导致断言失败和指针问题。通过此修复,该变量现在在构造时正确初始化Relay_log_info.
目的。(bug#21953132,bug#78722)复制:
重置所有奴隶
甚至什么时候可以删除一个频道master_pos_wait.
和wait_until_sql_thread_after_gtid.
我们仍在等待事务被应用。当函数试图访问被删除的通道时,这可能导致MySQL服务器退出。现在,添加了一个通道引用计数器,如果在函数运行时不应该删除通道,则该计数器将增加。重置所有奴隶
将等待没有引用,然后它将删除通道。(Bug #21842399, Bug #78445)复制:当
Relay_log_recovery = 1
,一个从服务器,初始化仍然尝试扫描中继日志文件以更新Retrieved_Gtid_Set
和事务解析器状态,这是一个不必要的资源浪费,因为从属I / O线程将被初始化为新的继电器日志文件中的SQL线程位置。使用此修复程序,从服务器跳过扫描继电器日志文件Relay_log_recovery = 1
。(bug#21798355,bug#78352)复制:XA交易未正确处理
--gtid-mode =上
而二进制日志已禁用。这是因为在主服务器和从服务器上,有时不会保存GTID状态,并且有时不会清理GTID所有权。此修复确保现在正确执行这些步骤。(bug#21618727)参考文献:另见:bug#22165138,bug#77740,bug#21452916。
复制:当多线程从错误停止错误时,打印了相同的错误消息三次。现在,SQL线程的kill接受状态保存,只打印一次。(bug#21198611,bug#77237)
复制:使用多线程奴隶时
Relay_Log_info_Repository.
调成表格
,奴隶应用程序线程无法将XA事务写入工作者配置。(bug#20988291)复制:mysqlbinlog - 韦尔伯斯展示二进制和varbinary.数据作为普通字符串,导致任何单引号(“'“)或反斜杠(“\“)在要打印的数据中,这与用户令人困惑,并且在反斜杠的情况下,导致跳过下一个字符。这个修复了mysqlbinlog.打印字符的十六进制值(“\ x27“单引用和“\ x5c“反斜杠)。(错误# 20836250)
复制:测试案例
main.merge
变量失败binlog_format
被设定为“排,
“当服务器试图在打开子表之前获取创建表的信息时。使用此修复后,服务器将跳过获取该情况下表的信息。(Bug #20574550, Bug #75976)复制:当服务器运行时
Relay_log_info_repository =表
和- 苏联只读
选项启用时,将导致更新从信息表的语句,例如停车奴隶
或者改变主
,导致了一个MySQL服务器正在运行错误,阻止语句执行。该修复程序确保无论设置为什么,复制操作都被允许只读
和super_read_only.
。(bug#78963,bug#22097534)复制:Valgrind测试mysqlbinlog.揭示了一些内存泄漏。(bug#78223,bug#21697461,bug#78966)
复制:如果主服务器上的查询生成了错误,并且部分结果被写入二进制日志,例如由于
如果存在,删除表
当使用复制过滤器配置的从站遇到查询时,应用程序应用于外来键约束的多个表的声明,它可能是错误的二进制记录。这导致错误,例如:last_sql_error:查询在主站和从属上引起了不同的错误。主机上的错误:消息(格式)='无法删除或更新父行:外键约束失败'错误代码= 1217;从站出错:实际消息=“没有错误”,错误代码= 0。默认数据库:'db1'。查询:'drop表如果存在`表1` / *由服务器* /'生成
此错误需要两个修复。
(bug#77684,bug#21435502)
参考:参见:Bug #20797764, Bug #76493。
杰森:错误消息提出
json_keys()
和json_extract()
包含错误的数据。(bug#78699,bug#22026278)空白()
在大字符串上可能很慢。(bug#22884187)引用:这个问题是:Bug #18315770, Bug #12368495的回归。
在客户端握手处理期间可能会发生整数溢出,导致服务器出口。(bug#22722946)
查询计划构造函数中缺少初始化器导致Valgrind警告。(bug#22573117)
mysqlpump查看名称包含空格字符时失败(语法错误)。查看名称现在引用。(bug#22505474)
UNHEX ()
使用无效的参数可能导致警告消息中的垃圾字符。(bug#22358933)在X509中检查错误的主机名称可以允许中间人攻击。(bug#22295186,bug#22738607)
对于调试构建,当在插入键的插入期间更新具有空字符串生成的表达式的索引的非脉冲生成列时,有一个优化导致服务器无法找到重复索引,从而导致要提出断言。(bug#22195364)
布尔模式全文搜索导致分段故障。(bug#22176795)
对使用的已生成列的查询
汇总
可以提出一个断言。(错误# 22131343)对于使用派生表的准备语句,在执行时检查语句特权时可能引发断言。(错误# 22108567)
并发选择和刷新a
联邦
表在终止访问它的连接时可能导致服务器退出。(错误# 21918190)对于调试构建,当使用连接缓冲区的查询和插入到连接缓冲区中的一个表被使用包含虚拟列的索引的动态范围扫描访问时,在向连接缓冲区写入列时会发生Valgrind错误。(错误# 21872184)
在反复卸载和安装
audit_log
插件,服务器可以挂起。(bug#21796658)与A.
锁定表
声明实际上,可以失败的性能模式表可能会失败显示状态
和show_compatibility_56 =关闭
。(错误# 21789221)执行
授权代理
改变定义后的陈述mysql.user
系统表可能会导致服务器出口。(bug#21699037)某些错误消息包括产生它们的SQL语句的一部分,可能会暴露数据。(bug#21682356)
尽管可以使用前缀创建非临时表
# sql
,性能架构假设使用此前缀命名的表临时,可以忽略。性能模式现在使用除名称以外的表属性来识别临时表。(bug#21105475,bug#22532368,bug#79934)帐户过滤由
audit_log
插件错误地使用了由此命名的帐户用户()
功能而不是CURRENT_USER ()
函数(后者是用于身份验证的帐户)。(Bug #19509471, Bug #22454245, Bug #77553)NAME_CONST ()
如果给出了不正确的参数,则可以返回null。在某些情况下,这未处理,可能导致服务器退出。(bug#19143243,bug#26361149)字符集转换操作
空值
准备语句的参数可能导致服务器退出。(错误# 18823979)没有选择松散的索引扫描,用于具有平等状况的查询。(bug#18109609)
长或复杂的SQL语句可能导致解析器耗尽内存。新的
parser_max_mem_size
系统变量现在可以控制对解析器可用的最大内存量。默认值没有可用的内存限制,但可以减少值以防止内存外情况。(bug#14744160)valgrind警告
memory_free_noop ()
沉默了。(bug#80457,bug#22782197)如果使用内置,MySQL服务器无法启动
-m32.
Solaris / SPARC上的选项,因为静态数据对齐不当init_delegates ()
。(bug#80445,bug#22763880)这
plugin_keyring.h.
标题文件拼写错误st_mysql_keyring
作为st_mysql_keyring_file.
。(bug#80414,bug#22748867)对于Windows上的共享内存连接,客户端库打开了互斥锁的句柄,但没有关闭它。如果客户端仍然打开互斥句柄,那么在连接的另一端重新启动服务器的后续尝试将失败。(Bug #80234, Bug #22646779)
mysqld.属性指定的插件试图初始化
- 插件加载
选项何时——帮助
选项已指定。(bug#80077,bug#22573767)使用...识别的更改用户
帐号密码过期,即使身份验证插件不支持密码过期。(Bug #79999, Bug #22551523)一些性能架构全局乐器(如果在服务器启动时启用)可能处于无法在运行时启用它们的状态。这种限制已被提升。受影响的仪器包括
互斥锁
那rwlock.
那气孔导度
, 和插座
实例。感谢张英强提供的补丁。(Bug #79784, Bug #22517278, Bug #66515, Bug #14532176)设置
super_read_only.
服务器启动时的系统变量无效。(bug#79328,bug#22233503)这些
audit_log
插件问题已更正:调用
my_message()
从MYSQL_AUDIT_GENERAL_CLASS
处理程序导致无限递归。诊断消息的情况得到改善
MYSQL_AUDIT_GENERAL_CLASS
处理程序退回非零。调用
my_message()
从mysql_audit_server_startup_class.
处理程序没有吸收服务器启动,因为它应该具有。显示全局变量
为此产生了不同的输出null_audit_abort_value.
系统变量show_compatibility_56.
启用和禁用。
(bug#79079,bug#239091,bug#22142166,bug#79092,bug#22142209,bug#21783798)
为了
插入
和更新
造成的操作外钥匙
约束违反、错误被报告而不是警告忽略
使用关键字。(bug#78853,bug#22037930)参考:参见Bug #23135731。
使用服务器会话服务,在没有VIO上下文的线程中执行SQL语句可能会引发断言。(Bug #78734, Bug #21959409)
创建视图
语句,使用TIMESTAMPDIFF ()
函数与微秒
因为单元导致了不正确的视图定义。(Bug #78506, Bug #21877062)对于现有用户,
创建用户如果不存在
产生错误而不是警告。同样,对于一个不存在的用户,Alter user if exists
产生错误而不是警告。(bug#78374,bug#21807286)对于某些查询,在范围扫描的成本相同或更少时,选择Index Merge访问计划。(Bug #77209, Bug #21178196)
UNHEX ()
可以尝试负数的左移。(bug#73964,bug#19642015)进程列表状态信息没有正确更新
加载数据
并且可以表现出不同的州执行
。(Bug #69375, Bug #16912362)