这是一个里程碑版本,使用风险自负。不支持里程碑版本之间(或从里程碑版本到GA版本)的升级。重要的开发更改发生在里程碑版本中,您可能会遇到兼容性问题,例如除了通常的运行过程外还需要注意的数据格式更改mysql_upgrade.例如,您可能发现有必要将数据转储到, mysqldump在升级之前重新加载它。(在任何情况下,升级前进行备份都是一种谨慎的预防措施。)
为了更好地兼容Oracle audit Vault,审计日志插件做了一些修改。
审计日志文件格式发生变化:
信息
< AUDIT_RECORD >
使用属性以旧格式编写的元素将使用子元素以新格式编写。新的格式包含更多的信息
< AUDIT_RECORD >
元素。每个元素都包含一个RECORD_ID
值,提供唯一标识符。的时间戳
值包含时区信息。查询记录包括宿主
,知识产权
,OS_LOGIN
,用户
信息,以及COMMAND_CLASS
而且STATUS_CODE
值。的
STATUS_CODE
值与已有值不同状态
值:STATUS_CODE
为0表示成功,1表示错误,这与Audit Vault的EZ_collector消费者兼容。状态
是价值的mysql_errno ()
C API函数。成功是0,错误是非0,因此错误不一定是1。
old的例子
< AUDIT_RECORD >
格式:
格式:. < AUDIT_RECORD > 2013-04-15T15:27:27 UTC 3998_2013-04-15T15:27:27 Query 3 0 0 root[root] @ localhost [127.0.0.1]localhost 127.0.0.1 select SQLTEXT> 当审计日志插件旋转审计日志文件时,它使用不同的文件名格式。的日志文件
audit.log
,该插件先前将文件重命名为audit.log。
.插件现在将文件重命名为时间戳
audit.log。
表示它是一个XML文件。时间戳
. xml有关审计日志插件的信息,请参见MySQL企业审计.
如果你之前使用的是旧版本的审计日志插件,使用这个过程来避免将新格式的日志条目写入现有的包含旧格式条目的日志文件:
停止服务器。
手动重命名当前审计日志文件。该文件将只包含旧格式的日志条目。
更新服务器并重新启动它。审计日志插件将创建一个新的日志文件,其中只包含新格式的日志条目。
编写审计插件的API也发生了变化。的
mysql_event_general
结构的新成员表示客户端主机名和IP地址、命令类和外部用户。有关更多信息,请参见编写审计插件.
不兼容的更改:
显示引擎performance_schema状态
输出用混合的row_count
而且数
属性。这些现在都是数
.类似地,输出使用的混合row_size
而且大小
属性。这些现在都是大小
.(错误# 16165468)性能:减少了字符串哈希开销。这还提高了元数据锁定、表定义缓存和performance Schema表I/O和文件I/O检测的性能。(错误# 13944392)
InnoDB:未压缩的,用户创建的
InnoDB
临时表和磁盘内部InnoDB
现在在共享临时表空间中创建临时表。的innodb_temp_data_file_path
配置选项定义临时表空间数据文件的相对路径、名称、大小和属性。如果没有指定值innodb_temp_data_file_path
,默认行为是创建一个自动扩展的数据文件ibtmp1
在略大于12MB的数据目录中。每次服务器启动时,共享临时表空间都会被删除并重新创建。在以前的版本中,临时表是在临时文件目录中的单个表文件表空间中创建的,或者在
InnoDB
数据目录下的系统表空间innodb_file_per_table
是禁用的。压缩临时表仍然创建在临时文件目录中的每个表文件表空间中。共享临时表空间消除了为每个临时表创建和删除文件表空间所带来的性能损失。专用临时表空间还意味着不再需要将临时表元数据保存到
InnoDB
系统表。InnoDB:在此版本发布之前,
InnoDB
存储的空间数据类型为二进制团
数据,映射到内部DATA_BLOB
数据类型。团
保持基础数据类型,但空间数据类型现在映射到一个新的内部数据类型,DATA_GEOMETRY
.与团
作为基础数据类型,前缀索引仍然可以在所有数据上使用几何
数据类型列。InnoDB:用户和系统创建的DDL性能
InnoDB
通过避免只有常规表才需要的操作,临时表得到了优化InnoDB
表。这些操作包括重做日志记录(恢复所需),将表定义元数据写入InnoDB
系统表,并插入缓冲。从优化中受益的DDL操作包括创建表
,删除表
,截断表
,ALTER TABLE
,包括修改表…导入表空间
而且修改表…丢弃表空间
.作为优化的结果,
InnoDB
中不再出现临时表元数据INFORMATION_SCHEMA
以前包含该数据的视图。相反,一个新的INFORMATION_SCHEMA
表格INNODB_TEMP_TABLE_INFO
控件中活动的用户创建的临时表的快照InnoDB
实例。此外,的数量InnoDB
在运行MySQL服务器进程的系统上,临时表可以同时存在,但现在受限于可用内存储量(对于临时表定义),因为临时表定义不再可以放在LRU列表中并被交换出去。InnoDB:的DDL性能
InnoDB
的优化改进了临时表创建表
,删除表
,截断表
,ALTER TABLE
语句。通过将DDL语句执行的操作限制为临时表所必需的操作,可以实现优化。InnoDB:
VARCHAR
列大小现在可以使用就地增加ALTER TABLE
,在这个例子中:ALTER TABLE t1 ALGORITHM=INPLACE, CHANGE COLUMN c1 c1 VARCHAR(255);
只要a所需的长度字节数是正确的
VARCHAR
列保持不变。为VARCHAR
大小为0到255字节的列,需要一个长度字节来对值进行编码。为VARCHAR
大小为256字节或更多的列,需要两个长度字节。结果,到位ALTER TABLE
只支持增加VARCHAR
列大小从0到255字节,或从256字节到更大的大小。就地ALTER TABLE
不支持增加的大小VARCHAR
列从小于256字节到大于或等于256字节。在这种情况下,所需长度字节的数量从1变为2,这仅由表副本(算法=复制
).减少
VARCHAR
尺寸使用原位ALTER TABLE
不支持。减少VARCHAR
Size需要表副本(算法=复制
).有关更多信息,请参见在线DDL操作.
InnoDB:支持在线索引重命名
ALTER TABLE
,现在包含了一个重命名索引
子句,如下例所示:”将索引i1重命名为i2
”,在那里i1
索引的当前名称和i2
是新的名字。的结果”
将索引i1重命名为i2
”是一个内容和结构与旧版本相同的表吗”t1”除了索引名,现在是”i2”而不是”i1”.分区:
处理程序
现在分区表支持语句。复制:一个
Auto_Position
所生成的输出中已添加显示奴隶状态
.此列的值显示复制自定位是否正在使用。如果自定位被启用,也就是说,如果Master_auto_position = 1
最后一次成功了吗将master更改为
语句,则列的值为1;如果不是,则值为0。(错误# 15992220)复制:的函数
GTID_SUBTRACT ()
而且GTID_SUBSET ()
以前可在libmysqld
只有在使用复制支持构建时才会这样。现在,在使用这个库时,无论它是如何构建的,这些函数总是可用的。复制:添加了
——rewrite-db
选择mysqlbinlog,这允许mysqlbinlog在回放使用基于行的日志记录格式写入的二进制日志时重写数据库的名称。通过多次指定该选项,可以创建多个重写规则。MySQL不再使用默认的OpenSSL压缩。(错误# 16235681)
现在有一个明显的错误代码(
ER_MUST_CHANGE_PASSWORD_LOGIN
),以获取由服务器发送给使用过期密码进行身份验证的客户端的错误。(错误# 16102943)在为Unbreakable Linux Network构建的RPM包中,
libmysqld.so
现在有一个版本号。(错误# 15972480)的错误消息
ALTER TABLE
语句。锁
或算法
值对于给定操作不支持是非常通用的。服务器现在产生更多信息的消息。(错误# 15902911)如果一个密码过期的客户端连接,但是
old_passwords
如果不需要为客户端帐户选择合适的密码哈希格式所需的值,则客户端无法确定正确的值。现在服务器自动设置会话old_passwords
为帐户身份验证方法设置适当的值。例如,如果帐户使用sha256_password
认证插件,服务器设置old_passwords = 2
.(错误# 15892194), mysqldump现在支持
——ignore-error
选择。选项值是一个用逗号分隔的错误编号列表,指定要忽略的错误, mysqldump执行。如果——力
选项也被赋予忽略所有错误,——力
优先。(错误# 15855723)mysql_config_editor现在支持
——港口
而且——套接字
选项,用于指定TCP/IP端口号和Unix套接字文件名。(错误# 15851247)mysqlcheck有一个新的
——skip-database
选择。选项值是应该跳过检查的数据库的名称(区分大小写)。mysql_upgrade将此选项添加到mysqlcheck中的系统表的升级命令mysql数据库的表之前:它升级
mysql
数据库,然后所有数据库,除了mysql
数据库。这避免了在升级系统表之前升级用户表可能出现的问题。(Bug #14697538, Bug #68163, Bug #16216384)的
validate_password_policy_number
系统变量被重命名为validate_password_policy
.(错误# 14588121)以前,在Linux上,服务器无法对版本执行堆栈回溯尝试glibc比当前支持的最小版本(2.3)更老。现在,在这样的尝试中,服务器会显示一条消息
glibc
版本太旧,不支持回溯。(错误# 14475946)在json格式
解释
输出时,attached_condition
子查询的信息现在包括选择#
表示子查询执行的相对顺序。(错误# 13897507)服务器用于处理密码过期帐户的客户端连接的沙盒模式做了以下更改:
有一个新的
disconnect_on_expired_password
系统变量(默认:启用)。它控制服务器如何处理密码过期的帐户。C API客户端库中添加了两个标志:
MYSQL_OPT_CAN_HANDLE_EXPIRED_PASSWORDS
为mysql_options ()
而且CLIENT_CAN_HANDLE_EXPIRED_PASSWORDS
为mysql_real_connect ()
.每个标志使客户机程序能够指示它是否可以处理密码过期的帐户的沙盒模式。MYSQL_OPT_CAN_HANDLE_EXPIRED_PASSWORDS
启用。mysqltest无条件的,mysql在交互模式下,和formysqladmin如果第一个命令是密码
.
有关客户端标志如何与
disconnect_on_expired_password
,请参阅过期密码的服务器处理.(Bug #67568, Bug #15874023)如果用户试图访问一个不存在且该用户无权访问的列,服务器将返回一个错误,指示该列不存在。现在,服务器返回一个错误,指示用户没有列的权限,这将不提供关于列存在的信息。(Bug #19947, Bug #11745788)
MySQL测试套件mysql-test-run.sh程序现在启动服务器
InnoDB
而不是MyISAM
默认存储引擎。为了保持测试结果与现有结果文件的兼容性,修改测试用例以添加一行包含force_default_myisam.inc
必要时存档。在未来的版本中,对于那些不特别需要的测试用例MyISAM
,这一行将被删除(所以他们运行InnoDB
)及测试结果将会更新。ALTER TABLE
现在支持重命名索引
子句重命名索引。更改是在没有表复制操作的情况下进行的。的mysql客户端现在有一个
——syslog
选项,该选项使交互式语句被发送到系统syslog
设施。对于匹配默认值的语句,日志记录将被抑制”忽略”模式列表(“密码*确定*:* *”
方法指定的任何模式的匹配语句——histignore
选择。有关更多信息,请参见mysql客户端日志.
不兼容的更改;分区:的变化
关键
与数字、日期和时间一起使用的分区哈希函数,枚举
,集
列在MySQL 5.5使表使用分区或子分区关键
在与MySQL 5.1服务器不兼容的MySQL 5.5或更高版本服务器上创建的。这是因为MySQL 5.5或更高版本服务器计算的分区id几乎肯定与MySQL 5.1服务器对相同表定义和数据计算的分区id不同,这是这些函数更改的结果。本金的变化
关键
在MySQL 5.5的分区实现中导致这个问题的原因如下:用于数字、日期和时间列的哈希函数从二进制变为基于字符的。2.用于哈希的基枚举
而且集
列从latin1 ci中的一个
字符转换为二进制。解决方案包括在MySQL 5.5中添加功能,以及稍后选择使用哪种类型的哈希
关键
分区,它是用新的算法
扩展至按键分区
选择创建表
而且ALTER TABLE
.指定按密钥算法分区=1 ([
导致服务器使用在MySQL 5.1中实现的散列函数;使用列
])算法= 2
导致服务器使用MySQL 5.5及更高版本的哈希函数。算法= 2
是默认值。使用适当的值算法
,可执行以下任何一项任务:创建
关键
MySQL 5.5及以后版本中与MySQL 5.1兼容的分区表使用创建表…按键算法划分=1(…)
.降级
关键
分区表是在MySQL 5.5或更高版本中创建的,以便与MySQL 5.1兼容,使用修改表…按键算法划分=1(…)
.升级
关键
原来在MySQL 5.1中创建的分区表使用散列,如MySQL 5.5和以后的版本,使用修改表…按密钥算法划分=2(…)
.重要的:在这样的表升级后,它们不能在MySQL 5.1中继续使用,除非它们首先被降级再次使用
修改表…按键算法划分=1(…)
在MySQL服务器上支持这个选项。
此语法不向后兼容,在旧版本的MySQL服务器中会导致错误。当生成
创建表…按键分区
语句,, mysqldump括号中任何出现的算法= 1
或算法= 2
在有条件的注释中,这样它就会被版本不至少为5.5.31的MySQL服务器忽略。升级的另一个考虑因素是MySQL 5.6之前的MySQL 5.6.11服务器不会忽略算法
选项,因为这些条件注释引用的是5.5.31版本;在这种情况下,您必须手动编辑转储,并删除或注释掉出现的选项,然后再尝试将其加载到MySQL 5.6.10或更早的MySQL 5.6服务器。这对于MySQL 5.6.11或更高版本生成的转储不是问题, mysqldump,其中注释所使用的版本为5.6.11。有关更多信息,请参见ALTER TABLE分区操作.作为修复的一部分,一个虚假的断言
InnoDB
也删除了之前已读取的已删除行,导致服务器在删除该行时断言该行位于错误的分区。(Bug #14521864, Bug #66462, Bug #16093958, Bug #16274455)参考文献:参见Bug #11759782。
不兼容的更改:对于调试版本,在严格的SQL模式下创建一个InnoDB表,违反了最大键长度限制,导致服务器退出。
此错误修复导致的行为变化:在严格SQL模式下,违反键长度限制现在会导致错误(并且不会创建表),而不是发出警告并将键截短到最大键长度。适用于所有存储引擎。(错误# 16035659)
重要的变化;插件API;复制:因为全文插件的行为可能在MySQL服务器之间有所不同,所以不可能保证使用该插件的语句在主服务器和从服务器上产生相同的结果。因此,对于基于语句的日志记录,依赖于全文插件的语句现在被标记为不安全的。这意味着当使用行格式记录这些语句时
binlog_format =混合
,并导致产生警告时binlog_format =声明
.(Bug #11756280, Bug #48183)重要的变化;复制
重要的这个修复在MySQL 5.7.2中被恢复。看到MySQL 5.7.2的更新(2013-09-21,Milestone 12).
执行执行隐式提交的语句,但不记录其更改
gtid_next
设置为除自动
是不允许的。在这种情况下,语句会失败并出现错误。这包括以下列表中的语句:(错误# 16062608)
参考文献:参见:Bug #16484323。
重要的变化;复制:报告的版本号mysqlbinlog
——版本
已增加到3.4。(Bug #15894381, Bug #67643)重要的变化;复制:用于在全局事务标识符中显示uuid的字母大小写不一致。现在,所有GTID值都使用小写,包括在
Retrieved_Gtid_Set
而且Executed_Gtid_Set
的输出中的列显示奴隶状态
.(错误# 15869441)重要的注意;复制:使用基于行的日志记录从表复制到同名视图会导致从服务器失败。现在,在使用基于行的日志记录时,在执行任何DML之前检查目标对象类型,如果从服务器上的目标实际上不是表,则给出一个错误。
请注意使用基于语句的日志记录,仍然可以从表复制到同名视图。
(Bug #11752707, Bug #43975)
性能;InnoDB:的
删除表
语句用于表using压缩可能比需要的慢,导致几秒钟的失速。MySQL正在进行不必要的解压页面在缓冲池与表相关的部分下降
操作。(错误# 16067973)NDB集群:的设置
DefaultOperationRedoProblemAction
API节点配置参数被忽略,使用默认值代替。(错误# 15855588)NDB集群:作业缓冲区充当块线程之间的工作请求(信号)的内部队列ndbmtd如果向块线程发送过多的信号,则可能耗尽。
执行推连接
DBSPJ
内核块可以并行执行查询树的多个分支,这意味着当执行更多的分支时,发送的信号数量会增加。如果DBSPJ
在作业缓冲区被填满之前无法完成执行,数据节点可能会失败。该消息的多个实例可以识别此问题sleeploop 10 ! !在集群退出日志中,后面可能跟着作业缓冲区已满.如果作业缓冲区溢出更缓慢,也可能由于错误1205 (锁定等待超时),看门狗定时器发起的关机,或其他超时相关的错误。这是由于“睡眠圈”造成的减速。
通常允许消耗和产生的信号之间的扇出比高达1:4。但是,由于扫描可能返回无限多的行(并且并行执行多个这种类型的扫描),在这种情况下,任何大于1:1的比例都可能导致作业缓冲区溢出。
此问题的修复将延迟任何将与另一个并行执行的查找子程序,以在其并行子程序完成自己的一个请求时恢复。这将密集扫描查找连接的扇出比限制为1:1。(错误# 14709490)
参考文献:参见Bug #14648712。
NDB集群:最近添加的LCP片段扫描看门软件偶尔会报告LCP片段扫描具有非常高的表id、片段id和行计数值的问题。
这是因为看门狗没有考虑在写入片段检查点文件之前耗尽用于缓冲行的备份缓冲区的时间。
现在,在LCP片段扫描的最后阶段,看门狗从监视所扫描的行切换到监视以字节为单位的缓冲区大小。当向文件写入数据时,缓冲区的大小应该减小,然后应立即关闭文件。(错误# 14680057)
InnoDB:解析带分隔符的搜索字符串时,例如”abc-def”在全文搜索中,
InnoDB
现在使用与相同的单词分隔符MyISAM
.(错误# 16419661)InnoDB:解决了InnoDB的命名不一致问题
PERFORMANCE_SCHEMA
重要声明。(错误# 16414044)InnoDB:中的状态值
innodb_ft_config
表将不会更新。的innodb_ft_config
用于内部配置,不应用于统计信息目的。为避免混淆,将用于内部使用的列值从innodb_ft_config
表格此修复程序还删除innodb_ft_config
表和其他与全文搜索相关的内部表。(Bug #16409494, Bug #68502)InnoDB:此修复程序禁止在压缩表上对聚集索引叶页进行额外拆分。额外的页面分割只是为了为将来的更新保留空间,这样就可以避免将来的页面分割。(错误# 16401801)
InnoDB:为
InnoDB
表,如果主键
在一个VARCHAR
列(或前缀)为空,索引页压缩可能失败。(错误# 16400920)InnoDB:的
InnoDB
分页算法可能会过度递归。(错误# 16345265)InnoDB:期间,不适当地测试引用和被引用之间的兼容性
修改表…增加外国
键可能导致服务器退出。(错误# 16330036)InnoDB:导入带配置文件的表空间不会导入数据文件。当使用复制和重命名方法更改表后,没有从缓冲池刷新所有页时,将发生此问题。此修复确保在使用复制和重命名方法更改表时,从缓冲池刷新所有页。(错误# 16318052)
InnoDB:回滚不包括只读事务对临时表所做的更改。(错误# 16310467)
InnoDB:当使用
ALTER TABLE
设置AUTO_INCREMENT
列值设置为用户指定的值,InnoDB将设置AUTO_INCREMENT
值设置为用户指定的值AUTO_INCREMENT
值大于用户指定的值。此修复确保AUTO_INCREMENT
value被设置为用户指定值的最大值和MAX(auto_increment_column)+1,这是预期的行为。(错误# 16310273)InnoDB:对于调试版本,
InnoDB
状态导出受制于可能导致服务器退出的竞态条件。(错误# 16292043)InnoDB:与
innodb_api_enable_mdl =了
,一个ALTER TABLE
操作InnoDB
需要表拷贝的表可能导致服务器退出。(错误# 16287411)InnoDB:会发生断言失败
heap->magic_n == MEM_BLOCK_MAGIC_N . heap
由于出现了竞态条件row_merge_read_clustered_index ()
返回错误。(错误# 16275237)InnoDB:InnoDB现在通过调用
abort ()
直接发挥作用,就像在其他平台上一样。(错误# 16263506)InnoDB:此修复删除了与只影响调试构建的page_hash锁相关的不必要调试断言。调试断言不再有效,应该在MySQL 5.6中引入hash_lock数组时删除。(错误# 16263167)
InnoDB:在没有任何警告的情况下,InnoDB会悄无声息地设置
innodb-buffer-pool-instances
如果缓冲池大小小于1GB,则设置为1。例如,如果innodb-buffer-pool-size
设置为200M和innodb-buffer-pool-instances
设置为4,InnoDB会静音设置吗innodb-buffer-pool-instances
为1。的新逻辑和警告消息innodb-buffer-pool-size
而且innodb-buffer-pool-instances
.(Bug #16249500, Bug #61239)InnoDB:的
lock_validate
函数获取和释放互斥锁,以避免占用互斥锁,该函数只存在于调试版本中。这种行为引入了一个窗口,在该窗口中,当代码遍历同一组数据时,可以对哈希表进行更改。此修复程序更新lock_validate
逻辑来收集必须验证锁的所有记录,释放互斥锁,并运行一个循环来验证记录锁。(错误# 16235056)InnoDB:
ALTER TABLE
函数将执行检查InnoDB是否处于只读模式(srv_read_only_mode = true
).如果InnoDB处于只读模式,检查将返回一个成功的状态,而不做其他任何事情。此修复程序取代了srv_read_only_mode
用调试断言检查条件。(错误# 16227539)InnoDB:当InnoDB缓冲池几乎被4KB的压缩页填满时,插入16KB的压缩表将产生8KB的空间
pages_free
增加,这可能会减慢或停止插入。(错误# 16223169)InnoDB:的InnoDB代码更新
ha_innodb.cc
而且handler0alter.cc
使用表::key_info
而不是两者都有表::key_info
而且TABLE_SHARE: key_info
.(错误# 16215361)InnoDB:在修改InnoDB锁定代码时,无意中删除了一个注册锁定等待的调用。这个修复将回调添加到InnoDB锁定代码中。(错误# 16208201)
InnoDB:直接呼叫
trx_start_if_not_started_xa_low ()
函数将导致调试断言。(错误# 16178995)InnoDB:在锁等待外键表中的插入的情况下,
InnoDB
可能报告错误的字典更改错误,并导致插入失败而不是重试。(错误# 16174255)InnoDB:一个合适的
ALTER TABLE
在一个InnoDB
表中删除旧主键的统计信息可能失败mysql.innodb_index_stats
表格(错误# 16170451)InnoDB:在某些情况下,死锁检测不起作用,导致会话挂起等待锁定等待超时。(错误# 16169638)
InnoDB:当表的主键包含列前缀,并且在表上定义了全文索引时,全文搜索将导致不必要的警告写入错误日志。此修复会抑制不必要的警告。(错误# 16169411)
InnoDB:
LOCK_TIME
在慢查询日志中不会正确记录。LOCK_TIME
没有考虑InnoDB行锁等待时间。(错误# 16097753)InnoDB:的页压缩期间的算术下溢
创建表
在一个InnoDB
表可能导致服务器退出。(错误# 16089381)InnoDB:对于调试版本,联机
ALTER TABLE
操作InnoDB
在表重建期间,表可能导致服务器退出。(错误# 16063835)InnoDB:在某些情况下
InnoDB
清除协调器没有使用所有可用的清除线程,导致清除活动不理想。(错误# 16037372)InnoDB:
ALTER TABLE
为InnoDB
表并不是完全原子的。(错误# 15989081)InnoDB:的大多数使用
UT_SORT_FUNCTION_BODY
,一个InnoDB递归归并排序std::类()
函数从c++标准模板库(STL)。的std::类()
函数需要更少的内存,由于内联执行速度更快。(错误# 15920744)InnoDB:此修复解决了在释放blob页面时可能发生的不必要的缓冲池查找,并实现了一个调试状态工具,
innodb_ahi_drop_lookups
,以作测试用途。(错误# 15866009)InnoDB:此修复程序实现了一个256字节的边界来扩展
VARCHAR
列代替256个字符的边界。的就地扩展VARCHAR
列通过更新数据字典。(错误# 15863023)InnoDB:创建大量表,每个表都有全文搜索索引,可能会导致过度的内存消耗。此bug修复增加了一个新的配置参数,
innodb_ft_total_cache_size
,它定义了全文搜索索引的全局内存限制。如果索引操作达到了全局限制,将触发强制同步。(Bug #14834698, Bug #16817453)InnoDB:此修复修改
InnoDB
代码,以确保在线程退出时关闭未使用的线程句柄,而不是让线程句柄一直打开,直到关闭mysqld在Windows上。(错误# 14762796)InnoDB:这个修复通过删除表锁定和禁用InnoDB在只读模式启动时的读视图创建和MVCC来消除不必要的开销(
——innodb-read-only = true
).(错误# 14729365)InnoDB:Bug#14100254的修复引入的回归将导致一个”! BPAGE - > FILE_PAGE_WAS_FREED”断言。(错误# 14676249)
InnoDB:全文搜索(FTS)索引保存点信息没有设置,导致在试图回滚到保存点时出现严重错误。(Bug #14639605, Bug #17456092)
InnoDB:的
innodb_sync_array_size
变量在运行时被错误地允许配置。作为记录,innodb_sync_array_size
必须在MySQL实例启动时配置,不能在启动后更改。此修复程序更改innodb_sync_array_size
转换为非动态变量。(错误# 14629979)InnoDB:文件系统级别的错误,例如打开的文件太多,可能会在操作期间导致未处理的错误
ALTER TABLE
操作。该错误可能伴随着Valgrind警告和以下断言消息:断言”!is_set()的失败。Mysqld收到信号6;
(Bug #14628410, Bug #16000909)
InnoDB:服务器可能在尝试时退出
InnoDB
重新组织或压缩已压缩的辅助索引页。(错误# 14606334)InnoDB:时执行的DML操作
重命名表
操作等待表空间上挂起的I/O操作完成将导致死锁。(错误# 14556349)InnoDB:试图卸载InnoDB memcached插件时,插件仍在安装,导致Mysql服务器终止。处理步骤当插件守护线程仍在初始化时,插件变量尚未设置,卸载过程无法清理资源。此修复程序添加一个变量来指示初始化状态。如果初始化不完整,卸载过程将等待。(错误# 14279541)
InnoDB:的值
innodb_force_recovery
小于6时,如果在计算表的统计信息时读取了损坏的页面,则打开损坏的表可能会一直循环。关于已损坏页面的信息被反复写入错误日志,可能导致磁盘空间问题。该修复导致服务器在读取页面的失败尝试达到一定数量后停止。若要排除此类损坏问题,请设置innodb_force_recovery = 6
并重新启动。(Bug #14147491, Bug #65469)InnoDB:当打印出长信号量等待诊断时,
sync_array_cell_print ()
遇到由竞态条件引起的分割违例(SEGV)。此修复程序通过允许在打印单元格时释放单元格来解决竞态条件。(错误# 13997024)InnoDB:试图替换默认值
InnoDB
全文搜索(FTS)停止词列表通过创建InnoDB
表具有相同的结构INFORMATION_SCHEMA。在NODB_FT_DEFAULT_STOPWORD
会导致错误。显示创建表
揭示了新的InnoDB
表是用CHARSET = utf8
.的InnoDB
FTS停词表有效性检查只支持latin1。此修复扩展了对所有支持的字符集的有效性检查。(Bug #68450, Bug #16373868)InnoDB:此修复将删除遗留的原型代码
srv_parse_log_group_home_dirs
,以及相关的头注释。(Bug #68133, Bug #16198764)InnoDB:当再次使用同一个表(游标)实例时,终止一个查询会导致InnoDB断言失败。这是修复Bug#14704286所引入的回归错误的结果。该修复引入了一个检查来处理长时间运行的查询的终止信号,但游标没有恢复到正确的状态。(Bug #68051, Bug #16088883)
InnoDB:在启动时,InnoDB在64位Linux和64位Windows系统上报告了一条消息,说明CPU不支持crc32指令。在Windows上,InnoDB不使用crc32指令,即使CPU支持。这个修正修改了消息的措辞,并实现了crc32指令的可用性检查。(Bug #68035, Bug #16075806)
InnoDB:没有检查内部生成的外键名的长度。如果内部生成的外键名超过64个字符的限制,这将导致无效的DDL
显示创建表
.此修复程序检查内部生成的外键名的长度,如果超出限制就报告错误消息。(Bug #44541, Bug #11753153)分区:对按范围和using分区的表的查询
TO_DAYS ()
作为一个分区函数,在剪枝时总是包含表的第一个分区。这种情况的发生与使用的范围无关之间的
这种查询的子句。(Bug #15843818, Bug #49754)分区:分区修剪现在为使用提供自动分区的存储引擎的表启用,例如
NDB
存储引擎,但它们是显式分区的。以前,对于使用这种存储引擎的所有表,无论表是否显式定义分区,都禁用修剪。此外,作为此修复的一部分,现在禁用了使用存储引擎(如
NDB
),提供自动分区。(错误# 14827952)参考文献:参见Bug #14672885。
分区:执行
修改表…删除分区
视图导致服务器崩溃,而不是像预期的那样出现错误。(错误# 14653504)分区:如果两者都是,则查询结果不排序
截然不同的
而且命令
,并对底层表进行了分区。(错误# 14058167)分区:对象中插入任意数量的行
存档
表使用超过1000个分区,然后试图删除表导致MySQL服务器失败。(Bug #13819630, Bug #64580)复制;Linux;微软的Windows操作系统:在Linux主服务器之间复制失败
lower_case_table_names
设置为0,Windows从服务器有lower_case_table_names
在slave上打开复制表后设置为2;此外,刷新表
之后需要查看哪些更新实际应用到从服务器上。这是因为lower_case_table_names
在强制将复制的数据库对象名称转换为小写以检查表缓存之前,只检查它是否等于1。在这种情况下,lower_case_table_names
检查是否将其设置为非零值。(错误# 16061982)复制;微软的Windows操作系统:当
binlog.index
文件以\ r \ n
(CR+LF), MySQL错误地包含r \
字符,导致复制失败。这可能导致在Windows系统上编辑此文件后重新启动服务器时出现问题。(Bug #11757413, Bug #49455)复制:当使用gtid和二进制日志自动定位时,每当从服务器重新连接时(由于I/O线程故障或主服务器更改等原因),在向从服务器发送任何事件之前,主服务器必须扫描所有二进制日志。现在,主服务器从包含从服务器上没有找到的任何GTID的最老的二进制日志开始。(Bug #16340322, Bug #68386)
复制:当主服务器的服务器版本大于或等于10时,复制到具有较低服务器版本的从服务器失败。(Bug #16237051, Bug #68187)
复制:当复制到MySQL 5.6主服务器到旧的从服务器时,错误1193 (ER_UNKNOWN_SYSTEM_VARIABLE)被记录为这样的消息master上的未知系统变量'SERVER_UUID',可能是一个非常老的master.这条消息已被改进,包括更多的信息,类似于这一条:主服务器上的未知系统变量“SERVER_UUID”。一个可能的原因是主服务器(版本:5.5.31)不支持该变量,尽管它在从服务器(版本:5.6.11)上.(Bug #16216404, Bug #68164)
复制:的打印格式说明符
server_id
被错误地定义为带符号的32位整数,范围为-2144783647到2144783648。此修复程序更改了server_id
的无符号32位整数类型,范围为0到4294967295,这是已记录的——服务器id
选择。(错误# 16210894)复制:当MTS打开并应用事务时,当遇到事务事件上的校验和错误时,从协调器将挂起。这是由于死锁情况造成的,在这种情况下,协调器假定正常停止,而工作人员等待协调器分派更多事件。对于调试构建,问题表现为断言失败,这是由于没有设置协调器造成的
螺纹- > is_error ()
当遇到错误时。(错误# 16210351)复制:用户变量的零长度名称(例如
@ ' '
)在从二进制日志读取时被错误地认为是数据或网络损坏的迹象。(Bug #16200555, Bug #68135)复制:运行
显示中继日志事件
在没有中继日志文件的从服务器上返回以下错误错误消息:"执行SHOW BINLOG EVENTS命令时出错:无法找到目标日志。
"错误消息文本已更改为:"执行SHOW RELAYLOG EVENTS命令时出错:无法找到目标日志。
(Bug #16191895)复制:mysqlbinlog可以连接到远程服务器并读取其二进制日志。在MySQL 5.6及更高版本中,该工具还可以等待服务器生成并发送额外的事件,实际上就像从服务器连接到主服务器一样。如果服务器发送了心跳信号,mysqlbinlog无法妥善处理。因此,mysqlbinlog此时失败,没有从服务器读取更多事件。为了解决这个问题,mysqlbinlog现在忽略任何类型的二进制日志事件
HEARTBEAT_LOG_EVENT
它接收。(错误# 16104206)复制:
停止奴隶
与诸如?之类的语句并发时,可能导致死锁显示状态
检索一个或多个状态变量的值Slave_retried_transactions
,Slave_heartbeat_period
,Slave_received_heartbeats
,Slave_last_heartbeat
,或Slave_running
.(Bug #16088188, Bug #67545)参考文献:参见Bug #16088114。
复制:撇号(
`
)字符在内部生成的SQL语句中并不总是正确处理,这有时会导致从服务器上出现错误。(Bug #16084594, Bug #68045)参考文献:这个问题是:Bug #14548159, Bug #66550的回归。
复制:为了使用gtid提供或恢复服务器,可以设置
gtid_purged
到一个列出所导入事务的给定GTID集。该操作要求全局gtid_executed
而且gtid_purged
服务器系统变量为空。(这样做是为了避免重写服务器生成的gtid的可能性。)错误消息GTID_PURGED只能在GTID_EXECUTED为空时设置在没有满足这一要求时提出的这个问题可能会引起混淆或误导,因为它没有说明受影响变量的范围。为了防止这种情况发生,现在引用与gtid相关的变量的错误消息在这样做时指定任何此类变量的范围。(Bug #16084426, Bug #68038)
复制:的会话级别值
gtid_next
在slave上为所有回滚错误重置,这意味着gtid可能在多语句事务中丢失,导致slave在ER_GTID_NEXT_TYPE_UNDEFINED_GROUP错误。现在,只有当一个完整的事务正在回滚时,或者当自动提交
启用。(错误# 16084206)复制:删除表名中包含不规则ASCII字符的表导致复制失败。解析器将表名转换为标准字符集字符,并将表名存储在table_name变量中。当使用table_name变量重新生成删除表查询时,不会将表名转换回原始字符集。
此外,64个字符的表名和数据库名会导致断言失败。断言要求表名或数据库名小于128个字符。拉丁字符每个字符需要两个字节,这要求断言条件小于或等于128位。
修正包括一个将表名转换回原始字符集的新函数,以及对assert条件的修正,允许表名和数据库名小于或等于128位。(错误# 16066637)
复制:使用
——复制- *
选项(见复制服务器选项和变量)在某些情况下可能导致从服务器上的内存泄漏。(Bug #16056813, Bug #67983)复制:在某些情况下,当从服务器无法识别主服务器的服务器版本时,这可能会导致从服务器失败。(错误# 16056365)
复制:在某些情况下,转储线程可能会发送与格式描述事件不同步的心跳。这个问题的影响之一是,在从备份数据目录配置新服务器并进行设置之后
——gtid-mode =
以及启用自定位(参见CHANGE MASTER TO语句),复制启动失败,出现错误从主机读取无效事件….同样的问题还可能导致基于gtid的复制由于计划外关闭主服务器后跳过的事件而失败。(错误# 16051857)复制:复制时复制失败
加载数据
语句将行插入视图。(Bug #15993712, Bug #67878)复制:当使用基于gtid的复制时,如果在主服务器上执行了事务,但没有发送到从服务器,因为从服务器已经有一个具有该ID的事务,则半同步复制将超时。可能发生这种情况的一种情况是在故障转移操作期间,新的主服务器在新的从服务器之后启动。(错误# 15985893)
复制:使用时,在每个事务之后对磁盘进行不必要的刷新
文件
因为复制信息存储库类型可能会降低性能。现在,只有当数据和中继日志信息都存储在(事务性)表中时,才会这样做。(错误# 15980626)复制:当从从二进制日志中读取表映射事件时,它假定元数据大小总是小于正在使用的表的列计数的两倍,当事件包含该字段的错误值时,就会失败。(错误# 15830022)
复制:当从二进制日志中读取行日志事件时,从服务器假定这些事件总是有效的;因此,具有无效二进制日志偏移量的事件可能导致从服务器崩溃。现在,在这种情况下,如果给定行事件中的任何字段无效,则slave会优雅地失败,并报告一个错误。(错误# 15829568)
复制:复制中使用的表id定义为类型
ulong
在主和使用uint
在奴隶上。此外,二进制日志事件中表id的最大值为6字节(281474976710655)。这些因素结合在一起导致了以下问题:当一个表被分配的ID大于时,slave上的数据可能会丢失
使用uint
.大于281474976710655的表id被写入二进制日志为281474976710655。
当slave遇到两个具有相同表ID的表时,这将导致停止slave。
为了解决这些问题,现在主和从都将id定义为类型
ulonglong
但是被限制在0到281474976710655的范围内,当它超过这个值时从0重新启动。(Bug #14801955, Bug #67352)复制:
MASTER_POS_WAIT ()
当事务被GTID协议跳过时,由于从SQL线程的无效更新,可能挂起或返回-1。(错误# 14775893)参考文献:参见Bug #15927032。
复制:试图在多线程从进程上执行Stop事件可能导致对中继日志进行不必要的更新,导致从进程失去与主进程的同步。(错误# 14737388)
复制:用于中继日志信息的内部对象在释放它们的内存之前只被部分删除。(错误# 14677824)
复制:当服务器启动时,它检查是否在没有锁的情况下启用了半同步复制,如果是,则获取锁,然后再次进行测试。在第一个测试之后但在第二次测试之前禁用半同步复制,可能会导致服务器崩溃。(Bug #14511533, Bug #66411)
复制:在某些情况下(在转储线程读事件循环中检测到EOF之后,以及在决定是否更改到新的二进制日志文件之前),可以在做出此决定之前将新事件写入二进制日志。如果此时发生日志旋转,则在EOF检测之后发生的任何事件都将被丢弃,从而导致数据丢失。现在,在这种情况下,将采取步骤确保在允许发生日志旋转之前处理所有事件。(Bug #13545447, Bug #67929)
参考文献:参见Bug #16016886。
复制:这对
MASTER_POS_WAIT ()
函数后过早返回将master更改为
更新RELAY_LOG_POS
或RELAY_LOG_NAME
.这种情况的发生是因为将master更改为
在这种情况下没有更新主日志的位置,导致MASTER_POS_WAIT ()
读取无效的日志位置并立即返回。为了解决这个问题,在SQL线程读取第一个事件时,将主日志位置标记为无效,直到将该位置设置为有效值,然后将其标记为有效。功能如下
MASTER_POS_WAIT ()
现在,推迟与主日志位置的任何比较,直到可以获得一个有效值(也就是说,在将master更改为
语句已被应用)。(Bug #11766010, Bug #59037)复制:如果在写入二进制日志时磁盘已满,服务器将挂起,直到手动释放空间。在完成此操作后,MySQL服务器可能会失败,因为在不需要的时候设置了内部状态值。在这种情况下,我们不会尝试设置这个状态,而是在错误日志中写入一个警告。(Bug #11753923, Bug #45449)
复制:二进制日志和中继日志文件使用PID文件名而不是主机名作为baseename。(Bug #11753843, Bug #45359)
微软的Windows操作系统:服务器以以下方式启动
——共享内存
为了支持共享内存连接,在接收来自多个线程的请求时可能会崩溃。(错误# 13934876)微软的Windows操作系统:在Windows上,
log_error
在某些情况下,系统变量不能准确反映错误日志文件名。例如,如果服务器启动时没有——控制台
或——日志错误
,默认为“log to”
在数据目录中,但是host_name
.errlog_error
仍然是空白。现在
log_error
应该是非空的,并且在所有情况下,在所有平台上反映日志文件名。取值为stderr
如果服务器不将错误消息写入文件并将其发送到控制台(标准错误输出)。特别是在Windows上,——控制台
重写错误日志的使用,并将错误消息发送到控制台,因此log_error
将设置为stderr
.(Bug #8307, Bug #11745049)Solaris:mysql_install_db不能在Solaris 10稀疏根区域工作。(Bug #68117, Bug #16197860)
RPM包丢失了
innodb_engine.so
而且libmemcached.so
插件。(错误# 17001088)Windows MSI安装MySQL 5.7有5.6升级代码,而不是5.7升级代码。(错误# 16445344)
显示引擎performance_schema状态
可以报告错误的内存分配值时,正确的值超过4GB。(错误# 16414644)如果准备好的语句试图在SQL处理程序打开时使用现有视图的名称创建表,则服务器可能退出。(错误# 16385711)
降低了性能模式语句标记化开销。(错误# 16382260)
类中的长数据库名
格兰特
语句可能导致服务器退出。(错误# 16372927)一些聚合查询试图分配过多的内存。(错误# 16343992)
对于调试构建,如果语句失败,并且在操作之前启用了自动提交,则可能引发断言
XA开始
发表了声明。(错误# 16341673)非常小的
join_buffer_size
值可能导致引发断言。(错误# 16328373)的
BUILD-CMAKE
的正确URL更新了MySQL发行版中的CMake信息。(错误# 16328024)类中包含子查询的准备语句时,优化器试图删除冗余子查询子句,从而引发断言
在
子查询中连接的子句。(错误# 16318585)这个问题是Bug #15875919的回归。
类中包含子查询的查询将返回不正确的结果
在
载有XOR
在在哪里
条款。(错误# 16311231)如果发生故障,可能会发生Valgrind故障
创建用户
语句被记录到通用查询日志和old_passwords
系统变量设置为2。(错误# 16300620)对于调试版本,检查密码约束可能会引发更新密码语句的断言。(错误# 16289303)
将数值转换为
位
可能会产生意想不到的结果。(错误# 16271540)修正了使用XCode 4.6编译时的警告。修正了编译时的警告
_XOPEN_SOURCE
或isoctal
宏已经在环境中定义了。(Bug #16265300, Bug #60911, Bug #12407384)在范围优化器中,索引合并失败可能导致服务器退出。(错误# 16241773)
对于升级操作,RPM包会出现无法访问等不必要的错误
.err
文件。(错误# 16235828)使用使用LooseScan半连接策略计算的范围谓词的查询可能返回重复的行。(错误# 16221623)
这个问题是Bug #14728469的回归。
一定的法律
有
条款因无效而被驳回。(错误# 16221433)yaSSL没有执行适当的填充检查,而是只检查cleartext的最后一个字节,并使用它来确定要删除多少字节。(错误# 16218104)
的性能模式可能返回不正确的值
PROCESSLIST_INFO
的列线程
表格(错误# 16215165)mysql_config——填词显示错误的输出。(错误# 16200717)
对象的范围优化器的调用
零
选择导致服务器退出。(错误# 16192219)对于调试构建,服务器可能会因为涉及的连接的适用索引计算不正确而退出
常量
表。(错误# 16165832)对于一个
创建表(…
语句,其中col_name
时间戳默认值current_timestamp…)选择选择
没有提供值时间戳
列,该列被设置为'0000-00-00 00:00:00',而不是当前的时间戳。(错误# 16163936)使用
分组通过rollup
可能导致服务器退出。(错误# 16163596)启用线程池插件后,大量的连接可能会导致Valgrind恐慌或客户端无法连接。(Bug #16088658, Bug #16196591)
从工作线程缺少性能模式检测。(错误# 16083949)
服务器执行
解释格式= JSON
对于一些格式不正确的查询。(错误# 16078557)如果错误为失败
缓存索引
存储程序中的语句索引由条件处理程序、畸形包和”命令不同步”错误发生。(错误# 16076180)设置
slave_rows_search_algorithms
将系统变量设置为不适当的值可能导致服务器退出。(错误# 16074161)设置密码
而且授予……确认的
对使用认证插件访问mysql外部存储的密码进行认证的用户的密码没有影响。用户表。但当试图修改这样一个用户的密码时,却没有产生任何警告,导致人们误以为密码被修改过,但实际上并没有。现在MySQL发出一个ER_SET_PASSWORD_AUTH_PLUGIN
警告,表明该尝试被忽略。(错误# 16072004)目录名操作可能导致OS X和Windows上的堆栈溢出。(错误# 16066243)
引用未使用的
SIGNAL_WITH_VIO_SHUTDOWN
中的宏CMake文件被删除。(错误# 16066150)最初的
测验
数据库包含dummy.bak
阻止的文件删除数据库
从工作。不再包含此文件。同样,一个db.opt
现在包含的文件包含以下行:default-character-set = latin1默认校对= latin1_swedish_ci中的一个
(错误# 16062056)
发出一个
准备
语句使用存储函数和用户变量的某些组合导致服务器退出。(错误# 16056537)将系统变量设置为
默认的
可能导致服务器退出。(错误# 16044655)对于调试构建,如果启动服务器时禁用了二进制日志记录,则正在执行
显示中继日志事件
从存储过程中抛出断言。(错误# 16043173)查询解析器由于某些语法错误而泄漏内存。(错误# 16040022)
在关闭期间,服务器可能试图锁定一个未初始化的互斥锁。(错误# 16016493)
的
——default-authentication-plugin
选项允许无效的插件值,并且不总是设置old_passwords
系统变量设置为与指定插件相适应的值。(错误# 16014394)的实例
# ifdef WITH_MYISAMMRG_STORAGE_ENGINE
而且# ifdef WITH_CSV_STORAGE_ENGINE
在服务器源代码中被删除,因为CSV
而且合并
存储引擎插件为必填项。(错误# 15997345)的
——character-set-server
选项可以将连接字符集系统变量设置为诸如ucs2
那是不允许的。(Bug #15985752, Bug #23303391)对于调试构建,在触发器或存储函数中执行导致隐式提交的语句会引发断言。(错误# 15985318)
在某些情况下,mysql——secure-auth允许使用旧的(4.1之前的)散列格式将密码发送到服务器。(错误# 15977433)
一个
mysys
库字符串格式化例程可能会错误处理宽度说明符。(错误# 15960005)表创建操作将条目添加到
file_instances
表,但在表删除操作时并不总是删除这些表。(错误# 15927620)启用索引条件下推后,下推条件在所使用的索引中不包含列的查询可能会变慢。(错误# 15896009)
带有
/ / /任何存在
的子查询命令
子句按类型的外列排序团
不在选择列表中的,会触发断言。(错误# 15875919)参考文献:参见Bug #14728142。
在特殊情况下,优化器不考虑适用于查询处理的索引,从而导致潜在的次优执行和错误执行
解释
输出。(Bug #15849135, Bug #16094171)查询缓存中涉及给定表的查询将错误地无效
临时
删除了同名的表。(错误# 14839743)优化器可以为所使用的查询返回不匹配的记录
裁判
对字符串数据类型的访问。(错误# 14826522)参考文献:参见Bug #14682735。
的失败
创建服务器
由于缺少或只读mysql.servers
表导致内存泄漏。(错误# 14781478)表名最多可达64个字符,但是
ER_TABLE_NEEDS_REBUILD
而且ER_TABLE_NEEDS_UPGRADE
错误是截断长度超过32个字符的名称。(错误# 14753226)在高客户机争用期间启用查询缓存可能导致服务器退出。(错误# 14727815)
当日志文件上的访问权限阻止服务器写入日志时,在运行时启用慢查询日志会导致服务器退出。(错误# 14711347)
如果优化器计算出外部连接的内部表的行数为零,它就不能确定以下表的正确顺序。(错误# 14628746)
服务员有时不尊重人
MAX_CONNECTIONS_PER_HOUR
限制用户连接。(错误# 14627287)服务器可以访问
DEBUG_SYNC
在连接关闭期间关闭临时表时,该设施已被清理,导致引发断言。(错误# 14626800)对象转换后,优化器可能返回不正确的结果
在
具有聚合函数的子查询存在
子查询。(错误# 14586710)表删除可能失败,并导致服务器退出非常长的文件名。(错误# 14581920)
当客户端程序失去与MySQL服务器的连接,或者在客户端执行后服务器开始关闭时
mysql_stmt_prepare ()
,下一个mysql_stmt_prepare ()
返回一个错误(如预期),但随后发生mysql_stmt_execute ()
调用会使客户端崩溃。(错误# 14553380)以前,如果多个
——登录路径
他们给出了选择,mysql_config_editor除了最后一个,其他都忽略了。现在多个——登录路径
选项将导致错误。(错误# 14551712)如果MySQL服务器启动时带有启用常规查询日志或慢速查询日志的选项,但日志文件上的访问权限阻止服务器写入日志,则服务器启动时显示错误消息,指示日志已关闭,需要在问题纠正后重新启动服务器。这是不正确的,因为在纠正问题之后,也可以在运行时再次设置日志记录变量(而不重新启动)。错误消息现在表明了这种可能性。(错误# 14512467)
对于调试版本,创建
临时
表内部的一个触发器导致服务器退出。(错误# 14493938)的
sha256_password_private_key_path
而且sha256_password_public_key_path
的关键文件sha256_password
验证插件,但服务器无法正确检查密钥文件是否有效。现在,如果其中一个密钥文件无效,服务器将记录错误并退出。(错误# 14360513)集
可能导致服务器退出。现在禁止使用这种语法,因为在var_name
=值(col_name
)集
上下文没有列名,语句返回ER_BAD_FIELD_ERROR
.(错误# 14211565)的
COM_CHANGE_USER
客户端/服务器协议中的命令没有正确使用命令报文中的字符集号,导致报文中其他值的字符集转换错误。处理步骤(错误# 14163155)如果服务器是用
——skip-grant-tables
,创建事件
而且改变事件
语句导致内存泄漏。(错误# 14059662)调用
FORMAT ()
函数带有区域设置和非常大的数字,可能导致服务器退出。(错误# 14040155)对于调试版本,处理不当
AUTO_INCREMENT
值溢出可能导致服务器退出。(错误# 13875572)某些插件相关的条件可以使用户帐户不可用:
帐户需要一个身份验证插件,但没有加载。
帐户要求
sha256_password
认证插件,但服务器启动时没有启用SSL或RSA,如该插件所要求的。
服务器现在默认情况下检查这些条件,并为不可用的帐户产生警告。这种检查减慢了服务器初始化和
冲洗的特权
,所以它是可选的通过新validate_user_plugins
系统变量。默认情况下,该变量是启用的,但如果不需要额外的检查,可以在启动时禁用它,以避免性能下降。(Bug #13010061, Bug #14506305)将未知的时区规范传递给
CONVERT_TZ ()
导致内存泄漏。(错误# 12347040)过时了的
linuxthreads.txt
而且glibc-2.2.5.patch
的文件文档
MySQL发行版目录已被删除。(错误# 11766326)如果构建为允许每个表的最大索引数量大于64,则服务器可能退出。
在解决这个问题的过程中,a
-DMAX_INDEXES =
CMake选项的添加允许构建服务器以支持每个表的最大索引数量。默认值是64。最大值为255。小于64的值将被忽略,并使用默认值64。(错误# 11761614)N
mysql_install_db没有逃脱
“_”
写入授予表的语句的主机名中。(错误# 11746817)与
explicit_defaults_for_timestamp
启用,插入零
成一个时间戳不是空的
列现在产生一个错误(就像它已经为other所做的那样非空
数据类型),而不是插入当前时间戳。(Bug #68472, Bug #16394472)的处理
SQL_CALC_FOUND_ROWS
结合命令
而且限制
可能导致不正确的结果FOUND_ROWS ()
.(Bug #68458, Bug #16383173)如果
INET6_NTOA ()
或INET6_ATON ()
返回零
对于结果集中的一行,还返回以下行零
.(Bug #68454, Bug #16373973)类中具有聚合的非分组外部查询和聚合的非分组子查询的语句
选择
列表可能返回不正确的结果。(Bug #68372, Bug #16325175)添加一个
命令
后的条款在
子查询可能导致返回重复的行。(Bug #68330, Bug #16308085)如果服务器是用
——skip-grant-tables
,修改用户…密码到期
导致服务器退出。(Bug #68300, Bug #16295905)配置与
-DWITH_SSL = /道路/ / openssl
由于选择错误导致链接错误libcrypto
.(Bug #68277, Bug #16284051)如果mysql是建立与捆绑
libedit
库,该库是作为静态代码构建的,以避免在运行时链接到不同的动态版本。动态链接可能导致使用不同的、不兼容的版本和段错误。(Bug #68231, Bug #16296509)在Performance Schema收集的统计数据中,服务器在调用存储引擎时执行的一些表I/O缺失。(Bug #68180, Bug #16222630)
的Perl版本mysql_install_db错误处理了一些错误消息。(Bug #68118, Bug #16197542)
对于小数秒大于6小数点的参数,
SEC_TO_TIME ()
截断的,而不是四舍五入的。(Bug #68061, Bug #16093024)类中具有许多值的查询
在()
子句运行缓慢,这是因为在非调试版本中包含了调试代码。(Bug #68046, Bug #16078212)参考文献:参见Bug #58731, Bug #11765737。
ALTER TABLE
插入tbl_name
添加一列col_name
更新current_timestamp时默认的current_timestamp0000-00-00就是
而不是当前的时间戳,如果更改是在适当的位置进行的,而不是通过进行表复制。(Bug #68040, Bug #16076089)mysqld_safe使用不可携带的
- e
测试构造。(Bug #67976, Bug #16046140)服务器没有强制执行
港口
或report_port
上限为65,535和截断的较大值。(Bug #67956, Bug #16035522)非空间索引只支持对空间列的精确匹配查找,但是优化器使用错误
范围
访问,导致不正确的结果。(Bug #67889, Bug #15993693)为
解释删除
而且解释更新
的possible_keys
列列出了所有索引,而不仅仅是适用的索引。(Bug #67830, Bug #15972078)睡眠()
没有产生警告或错误零
或者消极的论点。现在它会在严格的SQL模式下产生警告或错误。(Bug #67548, Bug #15859462)尝试创建具有相同操作时间和事件的触发器已存在的触发器会导致
ER_NOT_SUPPORTED_YET
错误而不是ER_TRG_ALREADY_EXISTS
错误。(Bug #67357, Bug #14801721)如果一个表在
INFORMATION_SCHEMA。在NODB_CMP_PER_INDEX
表中,删除表并没有删除这些行。(Bug #67283, Bug #14779330)如果配置了MySQL,则构建失败
WITH_LIBWRAP
启用。(Bug #67018, Bug #16342793)如果一个线程正在为查询缓存重新生成一个结果,那么正在使用前一个结果的其他线程可能无法正确丢弃旧的结果。对于调试构建,这会引发断言。(Bug #66781, Bug #14631798)
CMake是否没有检查系统
zlib
有MySQL所需的某些功能,导致构建错误。现在它检查并回落到绑定zlib
如果函数缺失。(Bug #65856, Bug #14300733)如果转储文件包含具有一个字符集和排序规则的视图,并且在具有不同字符集和排序规则的视图上定义了排序规则,则尝试使用”非法混合整理”错误。(Bug #65382, Bug #14117025)
的
SQL_NO_CACHE
关键字将防止服务器检查查询缓存以查看查询结果是否已被缓存,并防止服务器缓存查询结果。但是,查询缓存检查仅在SQL_NO_CACHE
前面和后面都是空格字符。(例如,如果关键字后面跟着换行符,服务器会检查缓存。)现在解析器要求前面和后面的字符是空白字符,而不是空格。(Bug #64164, Bug #13641256)如果服务器启动时没有
——datadir
选项,显示变量
的空值datadir
系统变量。(Bug #60995, Bug #12546953)类中包含特殊字符的视图定义
分隔符
合同条款GROUP_CONCAT ()
聚合函数,, mysqldump创建了无效的视图定义,该视图定义在重新加载转储文件时产生错误。(Bug #60920, Bug #12395512)对于调试构建,使用
选择……从双
嵌套子查询引发断言。(Bug #60305, Bug #11827369)的
——log-slow-admin-statements
而且——log-slow-slave-statements
命令选项现在在运行时作为log_slow_admin_statements
而且log_slow_slave_statements
系统变量。它们的值可以使用显示变量
.变量是动态的,因此可以在运行时设置它们的值。(实际上,选项是取代通过系统变量,但由于系统变量可以在服务器启动时设置,没有选项功能丢失。)源代码载于
mysys
图书馆my_malloc_lock
而且my_free_lock
内存锁定api从未使用过,已经被删除。(Bug #54662, Bug #11762107)如果服务器读取失败
errmsg.sys
,它可能退出与分割错误。(Bug #53393, Bug #11760944)内存不足的情况可能在处理内存不足的错误时发生,导致错误处理中的递归。(Bug #49514, Bug #11757464)
的
替换()
函数在将用户变量作为参数提供且对多行执行操作时,会产生错误的结果。(Bug #49271, Bug #11757250)联盟
类型转换可能会错误地将无符号值转换为有符号值。(Bug #49003, Bug #11757005)如果XA支持被多个存储引擎激活,则服务器将退出。(Bug #47134, Bug #11755370)
使用
杀了
在某些情况下,终止另一个会话中的语句可能导致该会话返回错误的错误代码。(Bug #45679, Bug #11754124)设置
max_connections
设置为小于当前打开连接数的值,将导致服务器退出。(Bug #44100, Bug #11752803)对于这种访问方法不适用的某些查询,优化器使用松散索引扫描(Loose Index Scan)。(Bug #42785, Bug #11751794)
在低内存条件下的视图访问可能会引发调试断言。(Bug #39307, Bug #11749556)
的输出
显示创建视图
可能会根据定义者
账户权限。(Bug #34553, Bug #11747931)如果一个列声明为
非空
,不允许插入零
或将其更新为零
.然而,即使存在一个之前插入
(或在更新之前
触发器),将列设置为非零
价值。现在,根据SQL标准,在语句末尾检查约束。(Bug #6295, Bug #11744964)