不兼容的更改:的
mysql_options ()
C API函数有两个新选项,MYSQL_OPT_MAX_ALLOWED_PACKET
而且MYSQL_OPT_NET_BUFFER_LENGTH
,设置客户端用于客户端/服务器通信的缓冲区的最大大小,以及用于TCP/IP和套接字通信的缓冲区的大小。设置这些选项类似于设置max_allowed_packet
而且net_buffer_length
系统变量)。每个选项名称现在也可以传递给mysql_get_option ()
函数来检索它的值。有关更多信息,请参见mysql_options (),mysql_get_option ().(无证)
mysql_get_parameters ()
功能已被删除。尝试使用它的应用程序将得到链接错误,应该修改以使用它mysql_options ()
而且mysql_get_option ()
代替。一个受影响的应用程序是DBD::mysql,它是Perl DBI的mysql驱动程序。升级到DBD::mysql 4.033或更高版本,其中包括对刚才描述的C API更改的修复。(错误# 20821550)
参考文献:参见Bug #20686665。
以前,打电话是必须的
mysql_thread_end ()
为每一个mysql_thread_init ()
调用以避免内存泄漏。C API内部已经重新实现,以减少分配的信息量mysql_thread_init ()
必须通过mysql_thread_end ()
:对于没有启用调试支持的发布/生产版本,
mysql_thread_end ()
不需要叫。对于调试版本,
mysql_thread_init ()
为DBUG包分配调试信息(参见DBUG包).mysql_thread_end ()
每一个都要叫吗mysql_thread_init ()
调用以避免内存泄漏。
(Bug #20621281, Bug #21802367)
微软的Windows操作系统:增加了对使用Microsoft Visual Studio 2015进行构建的支持。更改包括使用本机(在VS 2015中添加的)timespec库(如果存在的话),重命名lfind/lsearch和timezone/tzname以避免重定义问题
TMPDIR
来""
默认为P_tmpdir
不再存在,已弃用std:: hash_map
赞成std:: unordered_map
,并添加了Wix Toolset 3.10支持。(错误# 21657078)用于服务器构建的Boost库的最低版本现在是1.59.0。(Bug #77960, Bug #21567456)
MySQL发行版现在包含一个
mysqlclient.pc
文件,该文件提供MySQL配置的信息,供pkg-config命令。这使pkg-config被用作…的替代品mysql_config获取编译MySQL应用程序所需的编译器标志或链接库等信息。有关更多信息,请参见使用pkg-config构建C API客户端程序.一个新的
INSTALL_PKGCONFIGDIR
CMake选项可用来指定要安装的目录mysqlclient.pc
文件。默认值为INSTALL_LIBDIR / pkgconfig
,除非INSTALL_LIBDIR
结尾/ mysql
在这种情况下,它会先被移除。(Bug #76131, Bug #20637746)清理源代码库的工作已经完成,包括:删除不需要的CMake检查;从源文件中删除未使用的宏;重新组织头文件以减少依赖的数量并使它们更加模块化,删除没有定义的函数声明,用行业标准库中的等价函数替换本地编写的函数。
的shell和Perl版本mysql_install_db已经从MySQL发行版中删除。的可执行c++版本mysql_install_db在MySQL 5.7.5中实现的功能仍然存在,但仍然是弃用的(使用mysqld——初始化),并将在未来的MySQL版本中删除。(错误# 21625471)
弃用的
_r
版本的libmysqlclient
不再安装库。(错误# 21311067)
的影响有两个变化
show_compatibility_56
:以前,当
show_compatibility_56 =了
,从以下选项中选择INFORMATION_SCHEMA
系统和状态变量表返回一个空结果和一个弃用警告:INFORMATION_SCHEMA。GLOBAL_VARIABLES INFORMATION_SCHEMA。SESSION_VARIABLES INFORMATION_SCHEMA。GLOBAL_STATUS INFORMATION_SCHEMA。SESSION_STATUS
这导致应用程序不知道这样的选择可能是空的:空结果和警告不足以通知需要迁移到相应的Performance Schema系统和状态变量表。
要解决此问题,请从
INFORMATION_SCHEMA
系统和状态表现在会产生一个错误,以便更明显地表明应用程序是在需要修改的条件下运行的,以及问题在哪里。错误码为ER_FEATURE_DISABLED_SEE_DOC
.错误消息指示禁用了哪个表以及show_compatibility_56
10bet官方网站应该查阅文档。以前,当
show_compatibility_56 =对
,从以下性能模式状态变量表中选择返回空结果:performance_schema。global_statusperformance_schema。session_status
这使得从
INFORMATION_SCHEMA
从Performance Schema表中成功选择需要知道服务器来自MySQL 5.7和show_compatibility_56 =了
.要解决这个问题,现在从性能模式状态变量表中进行选择,无论值如何都会产生相同的结果
show_compatibility_56
.因此,只需要知道服务器来自MySQL 5.7.9或更高版本。(如果是,请从Performance Schema表中进行选择。否则,从INFORMATION_SCHEMA
表。)
了解更多关于
show_compatibility_56
还有移民问题,见服务器系统变量,迁移到性能模式系统和状态变量表.(错误# 21606701)这些性能模式表现在是世界可读和可访问的
选择
特权:global_variables
,session_variables
,global_status
,session_status
.这种变化的一个含义是显示变量
而且显示状态
不再需要在产生输出的底层性能模式表上的特权show_compatibility_56 =了
.(错误# 21251297)与
show_compatibility_56
系统变量启用后,报告的值Last_query_cost
而且Last_query_partial_plans
状态变量不正确。与
show_compatibility_56
系统变量禁用后,所报告的值Created_tmp_tables
,Handler_external_lock
,Table_open_cache_ %
状态变量不正确。(Bug #20483278, Bug #21788549, Bug #21788887)在此之前,
事务
文书载于setup_instruments
表默认禁用,并且events_transactions_current
而且events_transactions_history
的消费者setup_consumers
表默认启用。这种设置是不一致的,启用使用者可能会导致一种印象,即事务在默认情况下是工具化的。现在,默认情况下消费者也是禁用的。要监视事务,请启用工具和适用的使用者。(Bug #78311, Bug #21780891)与
show_compatibility_56
禁用系统变量,显示变量
而且显示状态
如果MySQL在没有性能模式支持的情况下编译,语句会失败。因此,不使用性能模式就无法进行编译。如果希望在编译时不使用特定类型的插装,可以使用以下方法CMake选项:Disable_psi_cond disable_psi_file disable_psi_idle disable_psi_memory disable_psi_metadata disable_psi_mutex disable_psi_ps disable_psi_rwlock disable_psi_socket disable_psi_sp disable_psi_stage disable_psi_statement disable_psi_statement_digest disable_psi_table disable_psi_thread disable_psi_transaction
例如,要在不使用互斥锁工具的情况下进行编译,可以使用
-DDISABLE_PSI_MUTEX = 1
选择。(Bug #78159, Bug #21669500)的
session_account_connect_attrs
表已错误地更改为要求选择
特权。它不需要任何特权。(Bug #77702, Bug #21436364)这个问题是:Bug #14569746的回归。
在
setup_timer
表,周期
ARM64平台的定时器现在可用。(Bug #77620, Bug #21374923)性能模式现在包括以下工具,用于监视二进制日志和中继日志缓存文件上的I/O:
Wait /io/file/sql/binlog_cache Wait /io/file/sql/binlog_index_cache Wait /io/file/sql/relaylog_cache Wait /io/file/sql/relaylog_index_cache
此外,默认值为
performance_schema_max_file_classes
从50增加到80。(Bug #76225, Bug #20675180)性能架构
线程
表现在包含一个THREAD_OS_ID
列,指示由底层操作系统定义的线程或任务标识符。例如,列值对应于Windows上的Process Explorer线程ID和gettid ()
值。有关更多信息,请参见线程表.如果您从较早的版本升级到这个MySQL版本,您必须运行mysql_upgrade(并重新启动服务器)将此更改合并到
performance_schema
数据库。
对于基于rpm的包,用于创建数据目录(
/var/lib/mysql
)由755改为751。这收紧了数据目录权限,同时仍然允许对mysql.sock
文件。(错误# 21066592)yaSSL升级到2.3.8版本。
从旧版本升级修复了与线程池插件一起使用时的连接失败问题。(Bug #20774956, Bug #21888925)
一个新的
关闭
SQL语句可用。的相同功能提供了一个sql级接口mysqladmin关闭命令或mysql_shutdown ()
C API函数。看到关闭声明.的
mysql_shutdown ()
函数及其对应COM_SHUTDOWN
客户端/服务器协议命令已弃用,将在未来的MySQL版本中删除。相反,使用mysql_query ()
执行关闭
声明。
空间功能如
ST_MPointFromText ()
而且ST_GeomFromText ()
的wkt格式表示多点
值现在允许值中的单个点用圆括号括起来。例如,下面两个函数调用都是有效的,而之前的第二个函数调用产生了一个错误:ST_MPointFromText('MULTIPOINT (1,1,2,3,3)') ST_MPointFromText('MULTIPOINT ((1,1), (2,2), (3,3))')
另外,函数如
ST_AsText ()
而且ST_AsWKT ()
产生wkt格式的结果现在显示多点
每个点周围都有圆括号的值。(Bug #54065, Bug #11761559)
的
sys
MySQL发行版中包含的schema已更新到1.5.0版本。这个版本包括了新的功能:一个新的
诊断()
存储过程使dba和其他支持人员能够收集诊断信息,以调查MySQL实例的性能。一个新的指标
视图和statement_performance_analyzer ()
存储过程为诊断()
过程。以下
sys
模式视图现在为长时间运行的事务提供进度报告:Processlist session x$ Processlist x$session
的
进步
这些视图的列显示了支持进度报告的阶段的工作完成百分比。有关更多信息,请参见sys Schema进度报告.sys
Schema对象现在有一个定义者
的“mysql.sys”@“localhost”
.(在此之前,定义者
是“根”@“localhost”
)。预留的使用mysql.sys
帐户避免了DBA重命名或删除根
帐户。
sys
Schema 1.5.0还修复了以下几个问题:的
sys
模式ps_is_instrument_default_enabled ()
而且ps_is_instrument_default_timed ()
存储函数在某些情况下返回不正确的结果。的
启用
而且历史
中添加的列setup_actors
早期MySQL 5.7版本中的Performance Schema表导致sys
模式ps_setup_reset_to_default ()
存储过程无法工作。事件计时信息的处理
sys
模式已更新,以处理MySQL 5.7.8中性能模式事件计时列的更改。mysql_upgrade对象中的精确对象计数值
sys
模式来确定是否需要升级。如果添加了本地对象,则重新安装会删除这些对象。现在它检查至少预期的对象数量。
如果您从较早的版本升级到这个MySQL版本,您必须运行mysql_upgrade将这些更改合并到
sys
模式。感谢Daniël van Eeden, Jesper Wisborg Krogh, Shlomi Noach和Morgan Tocker对本更新的贡献。(错误#78115,错误#21647101,错误#77927,错误#21550271,错误#78720,错误#21966366)
不兼容的更改;InnoDB:为了更好地管理重做日志格式的更改,第一个重做日志文件(
ib_logfile0
)现在包含一个格式版本标识符和一个文本字符串,用来标识创建重做日志文件的MySQL版本。新的布尔配置选项,
innodb_log_checksums
,替换innodb_log_checksum_algorithm
选择。innodb_log_checksums =对
使一个CRC-32C
校验和,使得它成为重做日志页面唯一支持的校验和。这个补丁还会从重做日志头和检查点页面中删除未使用的字段。
由于这个补丁引入的重做日志格式的变化,升级到MySQL 5.7.9或更高版本需要完全关闭,在某些情况下,需要删除现有的重做日志文件。有关此更改的相关说明,请参见MySQL 5.7的变化,降级的笔记.(Bug #21759424, Bug #78275, Bug #21752674)
重要的变化;InnoDB:
动态
替换紧凑的
的隐式默认行格式InnoDB
表。一个新的配置选项,innodb_default_row_format
,指定默认的InnoDB
行格式。允许的值包括动态
(默认),紧凑的
,冗余
.的
紧凑的
的旧版本之前,行格式一直保持默认行格式,以确保与旧版本兼容InnoDB
在MySQL 5.1及更早版本中。现在MySQL 5.1已经到了其产品生命周期的末尾,更新的动态
行格式成为默认格式。的优势信息动态
行格式,请参见动态行格式.所定义的行格式
innodb_default_row_format
当一个ROW_FORMAT
选项没有显式指定或在何时指定ROW_FORMAT =违约
使用。,则现有表将保持其当前行格式
ROW_FORMAT
选项被显式指定。如果一个ROW_FORMAT
选项没有显式指定或ifROW_FORMAT =违约
时,任何重建表的操作也会将表的行格式无声地更改为innodb_default_row_format
.有关更多信息,请参见定义表的行格式.重要的变化;JSON:介绍了
->
JSON列路径操作符。
现在支持作为的同义词列
->路径
JSON_EXTRACT (
,在那里列
,路径
)列
是一个JSON
列,路径
是一个有效的JSON路径。的表达式
->
,就像它的等价物一样JSON_EXTRACT ()
在有效的SQL语句中出现列标识符时,可以使用它来代替列标识符。例如创建表
而且选择
语句是有效的:CREATE TABLE t1 (a JSON, b INT, g INT GENERATED ALWAYS AS (a->"$.id"), h INT GENERATED ALWAYS AS (a->"$.storeid"), INDEX i (g), INDEX j (h));选择CONCAT(美元- >”。fname", ' ', a->"$.lname") AS名,a->"$。id" AS id, a->"$。storeid"从t1 WHERE g > 500 ORDER BY a->"$。storeid”- >“.lname美元”;
类中读取的任何列值都可以使用列路径表达式
选择
列列表,或在在哪里
,命令
,或集团
任何SQL语句中的子句;这样的表达式不能用于设置值。当SQL语句包含一个或多个使用
->
符号,每一个都被翻译成一个等价的表达式JSON_EXTRACT ()
函数来代替。的输出可以看出这一点解释
当用于这样的语句时。就像
JSON_EXTRACT ()
,->
运算符返回为零
如果没有找到其他有效路径的匹配值。有关
->
而且JSON_EXTRACT ()
,请参阅搜索JSON值的函数.看到搜索和修改JSON值,以获取有关JSON路径支持的信息。另请参阅为生成的列建立索引以提供JSON列索引,以获取更多信息和示例。InnoDB:一个新的
INNODB_METRICS
服务器操作柜台(innodb_dict_lru_count
)统计从表缓存LRU列表中删除的表的数量。感谢Daniël van Eeden提供的补丁。(Bug #21682332, Bug #78190)InnoDB:新
innodb_numa_interleave
只读配置选项允许您启用NUMA交错内存策略来分配InnoDB
缓冲池。当innodb_numa_interleave
时,NUMA内存策略设置为MPOL_INTERLEAVE
为mysqld的过程。后InnoDB
缓冲池被分配时,NUMA
内存策略设置为MPOL_DEFAULT
.此选项仅在支持numa的Linux系统上可用。感谢Stewart Smith的补丁。(Bug #18871046, Bug #72811)
JSON:JSON值更新函数
JSON_APPEND ()
,JSON_SET ()
,JSON_REPLACE ()
,JSON_INSERT ()
现在处理SQL零
值作为JSON的空文字,这是一致的JSON_OBJECT ()
而且JSON_ARRAY ()
.(Bug #77733, Bug #21450922)MySQL发行版现在包含这些头文件,因为
my_sys.h
这取决于他们:my_thread_local.h
,thr_cond.h
,thr_mutex.h
,thr_rwlock.h
.(错误# 21909332)MySQL Server RPM包现在过时MySQL Connector C.安装MySQL Server会导致旧的
libmysqlclient
从任何MySQL Connector C包中删除并用当前的libmysqlclient
.(错误# 21900800)RPM
.spec
从源RPM包构建的MySQL Server将包含适当的文件,以利用操作系统NUMA功能。的运行时依赖libnuma.so.1
.RPM和百胜检测这一点,如果库没有安装,则拒绝安装。(错误# 21775221)的
JSON_APPEND ()
函数被重命名为JSON_ARRAY_APPEND ()
.(错误# 21560934)的时候,服务器会生成一个警告
default_storage_engine
或default_tmp_storage_engine
系统变量设置为已禁用的存储引擎disabled_storage_engines
系统变量。(错误# 21405865)表空间的元数据锁定已经扩展,对于引用多个表空间的DDL语句,将在所有使用的表空间上获得元数据锁定。(错误# 21376265)
单元测试现在使用谷歌Mock 1.7而不是1.6。(错误# 21215389)
添加了对使用Solaris Studio 5.13构建的支持。(错误# 21185883)
mysql_ssl_rsa_setup默认情况下,现在的噪音更小。输出
openssl
仅当——详细
是给定的。(错误# 21024979)的插入开销
内存
通过缓存计算哈希值来减少存储表。(Bug #78480, Bug #21866029)写入的初始密码消息mysqld——初始化的错误日志
(警告)
到一个[注]
.(Bug #78182, Bug #21680457)mysqlpump现在支持
——版本
选择。(Bug #77894, Bug #21534277)对象中删除了不需要的脚本和测试文件
测试
目录,该目录被重命名为testclients
.(Bug #77807, Bug #21490075)中的性能模式摘要
DIGEST_TEXT
列有...
附加到末尾,以指示语句何时超过最大语句大小并被截断。的语句文本值现在也可以这样做SQL_TEXT
列。(Bug #75861, Bug #20519832)输出mysql_upgrade现在更少的噪音和更多的信息。(Bug #59077, Bug #11766046)
重要的变化;InnoDB;分区:无法升级现有分区表以使用为之实现的本机分区
InnoDB
表在MySQL 5.7.6。此修复程序增加了对两者的支持mysql_upgrade和mysql升级分区的客户端InnoDB
表在以前的版本中创建,该版本使用ha_partition
处理程序,以使用InnoDB
而是本地分区。mysql_upgrade现在检查所有
InnoDB
类创建的表ha_partition
处理程序,并试图将它们升级为InnoDB
本地分区。在mysql客户端,5.7.6之前的分区
InnoDB
方法可以将表逐一升级到本机分区修改表…升级分区
在此版本中实现的语句。
(Bug #20727344, Bug #76374)
重要的变化;复制:的
开始的奴隶
而且停止奴隶
语句不能再用于group_replication_recovery
通道。看到复制通道,以查询更多资料。(错误# 21680074)重要的变化;复制:在MySQL 5.7中,
binlog_max_flush_queue_time
在MySQL 5.6中引入的system变量不再有任何效果。这个变量现在已被弃用,并已被标记为在将来的MySQL版本中最终删除。(错误# 21347087)重要的变化;复制:当使用单线程从线程时,应用程序线程的状态现在作为
replication_applier_status_by_worker
表格,而不是replication_applier_status_by_coordinator
.这意味着replication_applier_status_by_coordinator
当使用单线程从库时,现在为空;应该注意的是,多线程从库的这种报告并没有改变,而是继续显示在那个表中。(Bug #74765, Bug #20001173)InnoDB;微软的Windows操作系统:试图在Windows根驱动器上创建通用表空间数据文件时出错。(Bug #21419888, Bug #77676)
InnoDB;微软的Windows操作系统:设置
lower_case_table_names = 0
在不区分大小写的文件系统上运行时,可能导致挂起条件插入…选择……从
操作与错误tbl_name
tbl_name
文书夹。现在打印一个错误消息,当试图启动服务器时,服务器退出——lower_case_table_names = 0
在不区分大小写的文件系统上。(Bug #20198490, Bug #75185)InnoDB:undo日志中包含的虚拟列和虚拟列索引信息不足,在添加或删除虚拟列时可能导致服务器退出。因此,一个缓慢的关闭(使用
innodb_fast_shutdown = 0
)在执行MySQL 5.7.8的本地升级或降级之前是必需的。有关更多信息,请参见升级MySQL.(Bug #21869656, Bug #78489)InnoDB:一个table-rebuilding
ALTER TABLE
在虚拟列上创建索引的操作引发断言。(Bug #21847170, Bug #78452)InnoDB:一个
选择……更新
对具有虚拟生成列的表的操作引发断言。InnoDB
为覆盖的二级索引扫描不必要地检索了非索引的虚拟列。(错误# 21827963)InnoDB:类时,创建包含大行的表失败
ROW_FORMAT =动态
或ROW_FORMAT =压缩
由于不正确的撤消日志记录大小计算。相同的操作成功与ROW_FORMAT =紧凑
或ROW_FORMAT =冗余
.ROW_FORMAT =动态
而且ROW_FORMAT =压缩
现在允许在DDL时违反行长度innodb_strict_mode
是禁用的。(Bug #21816041, Bug #78392)InnoDB:在索引前缀长度超过最大长度的虚拟生成列上添加索引会导致服务器退出。(错误# 21812026)
InnoDB:崩溃恢复后发生内存泄漏。中分配的内存
fil_space_read_name_and_filepath ()
没有被释放。(错误# 21811321)InnoDB:更改虚拟生成列的数据类型或计算方法会导致错误。(错误# 21810004)
InnoDB:在创建空间索引时引发断言。
InnoDB
计数空间索引列之前的虚拟列失败。处理步骤(错误# 21807340)InnoDB:表空间发现的修改在MySQL 5.7.5包括删除相关的代码
MLOG_FILE_CREATE2
重做日志记录。结果,重做日志中没有包含足够的文件创建信息。(Bug #21801423, Bug #78363)InnoDB:重做日志没有显示在并发DDL操作期间索引页写的重做日志被禁用。因此,外部热备份工具可能产生损坏的备份。(Bug #21796691, Bug #78351)
InnoDB:在调试构建中,在透明页面压缩测试期间断言恢复。从doublewrite缓冲区撕毁的页导致LSN调试检查失败。(错误# 21796092)
InnoDB:在分区表上创建虚拟生成列会导致服务器退出。(Bug #21790751, Bug #78326)
InnoDB:旧版的
使用
在构建包含NUMA内存策略支持的MySQL版本时,生成主机上的头文件导致编译错误。(错误# 21785074)InnoDB:一个
选择. .更新
对索引虚拟生成列的操作引发断言。(错误# 21775459)InnoDB:表空间标识符(
space_id
)登录了两次MLOG_TRUNCATE
重做日志记录。(错误# 21744589)InnoDB:崩溃恢复发出一个无效的错误消息,指示一个
isl
文件无法打开或不正确。(错误# 21691438)InnoDB:的
InnoDB
监视器显示互斥锁创建信息错误,互斥锁的信号量等待时间过长。(Bug #21682997, Bug #78179)InnoDB:中的错误消息格式已被纠正
os_file_write_page ()
函数。(Bug #21681433, Bug #78184)InnoDB:的
i_s_dict_fill_sys_tablespaces ()
函数可以在打印错误消息之前释放与文件名关联的内存。(Bug #21680518, Bug #78180)InnoDB:在调试版本中,扫描和应用的重做日志记录现在用字符串标识符而不是数字标识符打印
——ib_log debug = d
传递给mysqld.例如,rec MLOG_2BYTES
现在是打印而不是rec 2
.(Bug #21664268, Bug #78148)InnoDB:的系统调用次数
InnoDB
减少了页面压缩功能。(错误# 21654695)InnoDB:的
recv_parse_log_rec
函数在遇到不完整的重做日志记录时返回重做日志记录的长度而不是0MLOG_CHECKPOINT
记录。(Bug #21640085, Bug #78058)这个问题是一个17798076 Bug的回归。
InnoDB:在调试版本中,控件中的括号不匹配
匹配()与()
子句引发全文解析器断言。(错误# 21638907)InnoDB:添加了调试代码,以避免在Valgrind测试期间引发的doublewrite缓冲区断言。(错误# 21631197)
InnoDB:日志消息得到了改进,以帮助识别在添加回滚段时可能发生的空间不足错误。(错误# 21629618)
InnoDB:在调试版本中,启用
innodb_log_checkpoint_now
调试选项,同时表重建ALTER TABLE
正在运行的操作可能导致无限循环。(Bug #21628087, Bug #78056)InnoDB:
UNIV_INLINE
没有定义dict_table_has_indexed_v_cols
函数。(Bug #21628058, Bug #78055)InnoDB:不支持将修改虚拟列数据类型作为就地操作。(错误# 21617377)
InnoDB:排序被跳过
ALTER TABLE
语句,该语句更改了主键并删除了前一个主键的最后一列。(Bug #21612714, Bug #78020)InnoDB:在恢复期间,无效的
isl
档案被视为失踪isl
文件中定义的文件位置将打开表空间MLOG_FILE_ *
记录在重做日志中。恢复不再打开表空间isl
文件无效。(Bug #21577278, Bug #77986)InnoDB:提供旨在减少自适应哈希索引搜索锁存的超时机制的代码(
btr_search_latch
)争用被删除。在MySQL 5.7.8中引入自适应哈希索引搜索系统分区后,该代码就过时了。(Bug #21569876, Bug #77957)InnoDB:的
压缩
选项显示错误显示创建表
输出。(Bug #21557723, Bug #77940)InnoDB:一个
innodb_data_file_path
Mismatch会引发断言,初始化数据库时数据文件大小太小,无法满足指定的页面大小。(错误# 21551464)InnoDB:添加了一个检查以防止访问处于不一致状态的全文索引表。(错误# 21529012)
InnoDB:导入更改的表空间时,发生模式不匹配错误
指数下降
源服务器上的操作。(Bug #21514135, Bug #77659)InnoDB:在前一列上添加全文索引后,在虚拟生成的列上创建索引会引发断言。(错误# 21478389)
InnoDB:对于具有
动态
或压缩
行格式,为虚拟列撤消了不必要的数据记录。(错误# 21477535)InnoDB:一个
插入
操作引发了btr_search_enabled
断言。断言代码限制太大。(错误# 21457373)InnoDB:重新加载空时被逐出的表会导致
AUTO_INCREMENT
需要重置的值。(Bug #21454472, Bug #77743)InnoDB:飞机失事
截断表
该操作导致服务器在启动时退出。(错误# 21451922)InnoDB:的
.isl
删除MySQL数据目录外创建的通用表空间时没有删除。(Bug #21446772, Bug #77724)InnoDB:项下发生了不一致的读取
可重复读取
事务隔离级别。操作在同一行上的事务以错误的顺序从事务ID列表中删除。(Bug #21433768, Bug #77699)参考资料:这个问题是:Bug #17320977的回归。
InnoDB:禁用自适应哈希索引特性后,不必要地获取和释放了自适应哈希索引锁存。(错误# 21407023)
InnoDB:一个
ALTER TABLE
对在虚拟列上定义索引的表的操作错误地修改了虚拟列的数据。(Bug #21376546, Bug #77628)InnoDB:与虚拟列相关的清除操作引发了断言。(错误# 21374258)
InnoDB:在分区表上,在生成的列上创建索引会引发断言。(错误# 21372331)
InnoDB:由于内存已满,在线调整缓冲池大小会引发断言。(Bug #21348684, Bug #77564)
InnoDB:一个
修改表…导入表空间
操作innodb_page_size = 4 k
而且ROW_FORMAT =动态
提出了一个断言。(Bug #21341030, Bug #77540)InnoDB:对于空间索引,
InnoDB
在undo日志记录中不必要地存储了3072字节的前缀,而不是最大边界矩形(MBR)。对于具有外部存储数据的列,前缀和MBR都会被记录。(Bug #21340268, Bug #77537)InnoDB:无效的
init_ftfuncs ()
断言代码已被删除。(错误# 21300774)InnoDB:属性中添加了内存分配健全性检查memcached代码。(错误# 21288106)
InnoDB:的引用计数错误导致挂起
TrxInInnoDB
构造函数。innobase_close_connection ()
对象之前释放了事务对象TrxInInnoDB
调整引用计数的对象。(错误# 21280816)InnoDB:重新引入的MySQL 5.7.8补丁
显示引擎innodb互斥锁
功能性导致了性能倒退。(错误# 21266784)参考文献:参见Bug #77314, Bug #21238953。
InnoDB:一个memcached
flush_all
命令引发断言。从断言代码中调用启动事务的函数。(Bug #21239299, Bug #75199)InnoDB:当高优先级事务等待受害者事务退出,而受害者事务等待异步回滚完成时,就会发生关闭挂起。(错误# 21143276)
InnoDB:ARM64发生数据损坏。GCC内置程序在设置或取消设置锁字时没有发出正确的fence。(Bug #21102971, Bug #76135)
InnoDB:等待清除线程退出,服务器关闭被延迟。为避免此问题,将电话号码调至
trx_purge ()
被还原了,而trx_purge ()
批大小减少到20个。(错误# 21040050)InnoDB:在
读过承诺
模式中,取代
对唯一二级索引的操作导致违反约束。感谢Alexey Kopytov的补丁。(Bug #21025880, Bug #76927)InnoDB:的
IBUF_BITMAP_FREE
比特表示叶页中的空闲空间比实际可用的空间要多。(错误# 20796566)InnoDB:在恢复崩溃的数据库之前移动数据目录会导致在MySQL数据目录之外创建的表空间发现表空间失败。(Bug #20698468, Bug #76308)
InnoDB:的
innodb_buf_flush_list_now
调试设置未能将所有脏页刷新到磁盘。(错误# 20582189)InnoDB:一个
修改表…添加全文索引
操作引发断言。线程试图使用正在回滚的低优先级事务,该事务在回滚操作完成之前正在回滚。(错误# 20481175)InnoDB:运行一个
ALTER TABLE
在对引用表进行并发DML操作期间,对具有级联外键约束的引用表的操作会导致引用完整性丢失。(错误# 20367116)InnoDB:参数无法启动服务器
innodb_force_recovery
设置大于3。InnoDB
在应用重做日志之前设置为只读模式。删除表
对象现在支持innodb_force_recovery
设置大于3。(错误# 19779113)InnoDB:的
trx_sys_read_pertable_file_format_id ()
函数报告错误的文件格式。(错误# 19206671)InnoDB:的
mysql_system_tables_fix_for_downgrade.sql
从MySQL安装目录中删除了脚本,该脚本是在从MySQL 5.7.6或更高版本降级时方便更改系统表的。该脚本对所有降级路径不再有效。有关更多信息,请参见降级的笔记.(Bug #78259, Bug #21753832)InnoDB:使用索引条件下推(ICP)的表上的虚拟生成列导致断言。(Bug #77842, Bug #21507796, Bug #21478287)
包装;OS X:使用
用户= mysql
在OS X上安装时不允许mysql
待安装的数据库。为了解决这个问题,OS X包现在使用——已
选项在创建此数据库时。这也意味着有一个my.cnf
系统上的文件不再影响安装。(错误# 21364902)分区:与分区失败相关的错误处理
ALTER TABLE
对非分区表的操作没有正确执行(Bug #20284744)分区:
ALTER TABLE
当从存储过程执行时,对由分区的表并不总是能正确工作范围
.(Bug #77333, Bug #16613004, Bug #21246891)复制:组复制应用程序通道不支持
数据库
随着slave_parallel_type
;在启动组复制时,将显式地检查并正确处理。但是,仍然可以在以后的时间点通过增加的值来间接地改变这个值slave_parallel_workers
而从SQL线程被停止,这导致应用程序失败并出现错误。为了解决这个问题,slave_parallel_type
为group_replication_applier
,以确保它被设置为LOGICAL_CLOCK
无论何时slave_parallel_workers
设置为大于0,且不仅仅是在首次启动组复制时设置。(错误# 21798804)复制:作为
binlog_error_action = ABORT_SERVER
是MySQL 5.7.7及以后版本的默认值,它被用于更多的错误情况。该行为已被调整为生成核心转储,以提高故障排除的可能性。(Bug #21486161, Bug #77738)复制:在运行时,
Gtid_set
对象可以使用等于0(无效)的Performance Schema互斥锁键来检测,因为在实际没有提供互斥锁键时,它被用作有效的默认值。这允许在没有有效键的情况下创建这些对象,这导致在使用它们时出现进一步的问题。(错误# 21485997)复制:运行服务器时
gtid_mode =对
,一个删除
从一个内存
重新启动后的表没有正确写入二进制日志。(错误# 21045848)复制:ER_CANT_USE_AUTO_POSITION_WITH_GTID_MODE_OFF没有使用正确的格式报告错误。(错误# 20545943)
复制:当转储线程在转储不活动的二进制日志时被杀死时,该日志中的一些事件可以被跳过,因此不会被复制。(Bug #78337, Bug #21816399)
参考文献:参见Bug #74607, Bug #19975697。
复制:XA事务可能导致断言条件
XA提交
;发生这种情况是因为内部事务状态没有被重置XA准备
而且XA提交
或XA回滚
,因为这些操作构成XA下的独立事务。此外,XA回滚
在某些情况下,报表处理不当。(Bug #78264, Bug #21755890)复制:Group Replication插件和Performance Schema引擎之间的接口使用了一种传递给服务器的内存分配类型,当在插件和Performance Schema引擎之间传递信息时,这是一个潜在的问题来源
performance_schema
表。此接口的实现已被重做,以避免在共享数据时执行这种类型的内存分配。(Bug #78263, Bug #21755699)复制:每个通道的MTS子模式集被工作线程忽略,工作线程继续读取和使用所有从通道的全局标志集。当协调器是一种类型而它的工作器是另一种类型时,这可能会导致错误。(Bug #77763, Bug #21464737)
复制:的权限时,复制从端可能会因为权限不足而失败
复制的奴隶
特权。(Bug #77732, Bug #21455603)复制:状态变量
Slave_open_temp_tables
跟踪复制从打开的临时表的数量。如果启用了多源复制,则它是所有通道的临时表的总数。此修复解决了与此变量相关的以下问题:为通道重置从机
强迫的价值通道
Slave_open_temp_tables
为0;如果其他一些复制区域通道打开了临时表,这些表后来被删除,则该值将被替换为一个大的负值(1 - 232
).这也会导致错误或遗漏的警告停止奴隶
或将master更改为
声明。修改的内部函数
Slave_open_temp_tables
在这种情况下,有两个错误的假设:当没有启用多线程从端时,只有一个线程更新该变量,这在多源复制的情况下是不正确的。
对于单个写入器和多个读取器,非原子操作是安全的,但对于MySQL支持的某些平台来说,这并不一定是正确的。
(Bug #77585, Bug #21357008)
复制:的警告“@@SESSION。Gtid_executed '已弃用,将在未来的版本中删除。是否打印了会话变量
gtid_executed
未包括在查询的结果中。此外,结果选择@@SESSION.gtid_executed
包括一个重复的警告。发生这两个问题的原因是每当值时都会打印警告gtid_executed
被语句访问,无论结果中是否实际包含给定的变量,这样的访问都是理所当然的。为了解决这个问题,我们做了处理
@@SESSION.gtid_executed
与被弃用的变量一致@@GLOBAL.sql_log_bin
在这种情况下,通过进行以下更改来处理:gtid_executed
已不再包括在performance_schema.session_variables
表格gtid_executed
仍然包括在information_schema.session_variables
表,但当show_compatibility_56 = ON
,在查询session_variables表或发出警告时,不会发出警告显示变量
或显示会话变量
,即使在使用匹配时也是如此就像
的任意一个从句显示
语句。
警告仍然是由这样的语句发出的
选择@@SESSION.gtid_executed
它直接访问变量的值。(Bug #77574, Bug #21354712)参考文献:参见Bug #75980, Bug #20575529, Bug #76626, Bug #20854952。
复制:当事务在自动提交模式下失败时,当禁用二进制日志记录时回滚事务时,它的GTID不会释放。(Bug #77521, Bug #21338147)
复制:从组事件解析器没有正确注册
XA_ROLLBACK
事件作为事务边界。(Bug #77392, Bug #21273010)参考文献:参见Bug #20920851。
复制:mysqlbinlog打印一个
回滚
语句,该语句在回放时失败,错误为1782@@SESSION。当@@GLOBAL时,GTID_NEXT不能设置为ANONYMOUS。Gtid_mode = on.当二进制日志文件不包含任何与事件相关的数据时,或者当中继日志文件包含Format_description_log_event
它在服务器启动时在主服务器上生成。此问题的修复会导致一个中继日志
Format_description_log_event
什么也不做,如果它是由一个BINLOG
语句,并停止a回滚
从设置gtid_next
来匿名
当状态gtid_next
尚未由后续事件确定。(Bug #76887, Bug #20980932)复制:
保存点
而且回滚到保存点
在一个触发器中导致断言。(Bug #76727, Bug #20901025)复制:而一个
显示binlog事件
语句正在执行,任何并行事务都被阻塞。该修复确保显示binlog事件
进程现在只在计算文件的结束位置期间获得锁,因此并行事务不会阻塞很长时间。(Bug #76618, Bug #20928790)复制:如果一个
创建视图
语句失败,它被错误地写入二进制日志,即使它没有导致创建部分视图。该修复确保此类语句不会记录在二进制日志中。此外,还发现当一个在主机上失败的语句被从机上接收到并带有预期错误时,如果该语句在从机上被跳过,例如由于复制过滤器,则预期错误将与从机上发生的实际错误进行比较。该修正确保了如果从服务器接收到一个带有预期错误的语句,如果该语句没有被过滤,那么它只会与从服务器上发生的实际错误进行比较。(Bug #76493, Bug #20797764)复制:指定的动作
binlog_error_action
在日志旋转过程中发生硬件故障后,并不总是正确执行。(Bug #76379, Bug #20805298)复制:当使用MySQL 5.7.6及以上版本时
binlog_format =行
而且gtid_mode =了
,如果创建…选择
在执行过程中被杀死可能会导致不一致状态,破坏复制。原因是在MySQL 5.7.6的方式创建…选择
日志被更改,因此在创建表
而且选择
步骤。该修复确保创建…选择
什么时候在事务中间不提交binlog_format =行
.(Bug #76320, Bug #77098, Bug #20742519, Bug #21114464)复制:修改
master_info_repository
或relay_log_info_repository
在事务内部和稍后回滚该事务使存储库处于不可用状态。我们通过防止在事务中修改这些存储库来解决这个问题。(Bug #74950, Bug #20074353)复制:增加的事务
gtid_executed
使用集
gtid_purged
没有考虑到WAIT_FOR_EXECUTED_GTID_SET ()
直到客户端或从线程提交后续事务。(Bug #73838, Bug #19579811)复制:当使用
relay_log_info_repository =表
,mysql.slave_relay_log_info
表在提交事务或显式执行刷新(例如在中继日志旋转期间)时更新。如果一个事务使用任何非事务性表(例如MyISAM
表)跨多个中继日志分割,它在中继日志刷新时部分提交。当gtid_mode =对
,这会导致对事务的其余部分使用相同的GTID,从而引发ER_GTID_NEXT_TYPE_UNDEFINED_GROUP错误。在这种情况下,我们通过延迟更新中继日志信息存储库(通常发生在中继日志旋转时)来解决这个问题,直到执行了相关事务的提交。
此问题不影响使用事务性存储引擎的表,例如
InnoDB
.(Bug #68525, Bug #16418100)参考文献:参见Bug #21630907, Bug #76974。
JSON:虽然使用
JSON
值和最大的()
或至少()
当前不支持,服务器没有正确处理这样做的尝试,导致断言(Linux)或退出()
在调试版本中调用(Windows)。现在,当您尝试在这些函数中使用JSON值时,服务器会发出适当的警告(ER_NOT_SUPPORTED_YET
).(错误# 21828321)参考文献:参见Bug #21383497。
JSON:对象所生成的列的表
JSON
列在某些情况下会损坏,因此使用不同的连接对表的后续访问会导致服务器失败。(错误# 21808680)参考文献:参见Bug #21824519, Bug #78408。
JSON:
JSON_TYPE ()
返回不透明的
对于一些二进制值,它应该被识别为团
.(错误# 21649073)JSON:如果将path参数作为用户定义变量传递,从而更改结果集行之间的值,则JSON函数可能返回不正确的值。(错误# 21602361)
JSON:对于调试构建,JSON值的不正确缓存可能导致引发断言。(错误# 21491442)
JSON:空字符串(不是有效的JSON值)通常会被解析并作为JSON空文字返回,但在某些情况下可能会引发调试构建的断言。(错误# 21487833)
JSON:当视图是外部连接的内部表时,a
JSON
列可以产生非-零
值的时候零
是预期。(错误# 21448719)JSON:如果
JSON_CONTAINS_PATH ()
被称为one_or_all
的观点所有
如果path参数包含通配符,则函数查找每个路径的所有匹配项,尽管在本例中一个匹配项就足够了。(错误# 21442775)JSON:
JSON_SET ()
而且JSON_REPLACE ()
如果路径表达式识别了非数组值,有时会产生错误的结果。(错误# 21442624)JSON:使用非严格SQL模式或JSON转换错误的抑制
插入忽略
如果将空值插入到Json不为空
列已复制到另一列JSON
列。(错误# 21437989)JSON:对于深度嵌套的JSON输入,
ST_GeomFromGeoJSON ()
或JSON_VALID ()
可能产生堆栈溢出。(Bug #21389101, Bug #21377136)JSON:解析包含具有大负指数的浮点数的JSON字符串失败可能导致服务器退出。(错误# 21384048)
JSON:对于调试构建,调用
ST_AsGeoJSON ()
在分组由…与汇总
可以提出一个主张。(错误# 21383497)JSON:
JSON_SEARCH ()
如果指定了无效的转义表达式,则可能返回不正确的结果。(错误# 21383284)JSON:对于调试版本,a
零
第一个论证JSON_SET ()
可以提出一个主张。(错误# 21381806)JSON:对于形式的表达式
(
,其中子查询可能返回JSON值,如果未能处理行结果,则可能导致服务器退出。(Bug #21376088)子查询
)在(子查询
)JSON:的失败
JSON_APPEND ()
处理合法条件可能导致服务器退出。(错误# 21373874)JSON:某些JSON函数在有路径表达式常量的准备语句中使用时可能返回不正确的结果。(Bug #77785, Bug #21472872)
RHEL RPM包的依赖项信息不正确。(错误# 22218841)
对于对索引生成的列进行仅索引扫描,服务器可以进行随机计算;随机结果不会暴露给用户,但可能会出现Valgrind警告,当计算涉及的函数没有预期到这种错误数据时,服务器可能会退出。(错误# 21833760)
对于有
虚拟
生成的列,插入
如果值列表为空,则可能导致服务器退出。(错误# 21807818)CMake配置进行了调整,以处理Clang 3.7报告的新警告。(错误# 21803314)
对于类型的插件
PROTOCOL_PLUGIN
,执行安装插件
,卸载插件
,或关闭
可能导致服务器退出。这样的插件不再被允许执行这些语句。(错误# 21797816)使用在包含生成列的表上定义的物化视图可能会导致服务器退出。(错误# 21797776)
为分区
InnoDB
包含虚拟生成列的表,从表中读取可以返回该列的随机数据。(错误# 21779011)的CMake在没有NUMA支持的平台上检查NUMA可用性可能会导致编译问题。(错误# 21774859)
优化器不考虑非函数表达式,例如
(a和b) = 1
类的索引生成的列时(a和b)
表达式。现在使用和
而且或
考虑逻辑运算符。(错误# 21770798)对于调试版本,当优化器试图为范围优化克隆某些类型的键时,会引发断言。(错误# 21761867)
对于调试构建,当优化器试图估计在没有键的情况下处理惟一值的成本时,服务器可能退出。(错误# 21697002)
一个
插入
进入带有子查询的视图,如果作为预备语句执行,则可能失败。(错误# 21696206)查询有关
InnoDB
优化器使用的表空间
索引的全索引扫描,结果为空,因为这种索引不支持全扫描。优化器不再考虑空间
索引作为全索引扫描的候选者。(错误# 21663612)对于某些输入,
ST_Intersection ()
可能返回一个无效的多边形。(错误# 21658453)空间函数可以简化上下文中的几何值,这些值可能在查询的其他地方使用,从而产生不正确的结果。(错误# 21652012)
如果
ST_ConvexHull ()
或ST_SRID ()
在视图定义中使用,结果定义包含ST_Convex_Hull ()
(拼写错误)或SRID ()
(弃用)。(错误# 21651588)对于调试构建,启用
PAD_CHAR_TO_FULL_LENGTH
SQL模式可能导致显示功能状态
提出断言(错误# 21632425)mysqlpump对于某些不兼容选项的组合,没有显示消息退出。(错误# 21628662)
如果优化器试图基于准备语句参数创建临时表,则可能引发断言。(错误# 21625929)
执行带有多个嵌套子查询的准备好的语句可能会引发断言。(错误# 21624851)
对于调试构建,子查询优化失败可能会由于错误处理不当而引发断言。(错误# 21621313)
在语句处理的早期,一些表和索引优化器提示丢失了,因此查询重写插件无法访问它们。这可能导致传入语句和语句模式模板之间的不正确匹配。(错误# 21619780)
包含组合了分组和外部引用的嵌套子查询的查询可能会导致服务器退出。(错误# 21619634)
通过
零
第二个或第三个参数ST_AsGeoJSON ()
可能导致服务器停止响应会话或(在调试版本中)抛出断言。向…提供意见
处理程序读
如果不能转换为正确的类型,则可能导致服务器停止响应会话或(在调试构建中)抛出断言。(Bug #21616810, Bug #21650603)对于调试版本,
ST_IsValid(空)
可以提出一个主张。(错误# 21616647)对于调试版本,在将时间值转换为十进制时,可能会引发对负零值的断言。(错误# 21616585)
ST_AsWKB ()
如果给出的数据无效,可能导致服务器退出。(错误# 21614368)参考文献:参见Bug #22131961。
如果在生成的列上使用聚合函数,而该列本身是多列索引的一部分,则服务器可以退出。(错误# 21613615)
在列引用解析期间缺少错误检查可能导致错误消息或(在调试版本中)引发断言。(错误# 21613422)
对于调试构建,可以在中引发断言
Filesort: make_sortorder ()
对于试图排序的操作Item_ref
对象。(错误# 21611270)对于调试构建,对于具有半连接并使用物化策略的某些查询,如果键长度或键部分的数量为零,则会引发断言。(错误# 21566735)
编译使用海湾合作委员会4.9或5.1在ARM64平台上失败。(错误# 21552524)
参考文献:参见Bug #21845828。
对于调试构建,无效的几何字节字符串可能导致空间函数抛出断言,而不是向调用者返回错误。(错误# 21546656)
对于调试版本,过于严格的断言可能由无效字符For引发
加载数据
.(错误# 21542698)服务器可以在何时退出
InnoDB
对象上的辅助索引虚拟
生成类型为的列团
.(错误# 21530366)对于要处理的临时表
联盟
选择的语句字符
或集
列,最大列宽度可能太长InnoDB
来处理。现在,这样的列被创建为变长列。(错误# 21480999)对于配置为
MAX_INDEXES
大于64时,服务器使用临时表的某些查询可能导致服务器退出。(错误# 21466850)添加或删除
虚拟
生成的列可能导致服务器退出。(错误# 21465626)对于使用审计插件API的插件,
MYSQL_AUDIT_GLOBAL_VARIABLE_SET
传递给通知函数的事件不包括新变量值。(错误# 21457699)如果表名包含特殊字符,则对包含索引生成列的表的查询可能会失败。(错误# 21454155)
对于调试版本,一些为空间参数(例如,指定为十六进制值)接受原始字节数据的空间函数,如果这样的参数在有效数据之后包含额外的垃圾,则可能引发断言。(错误# 21397107)
对于调试构建,在子查询执行期间可能会引发错误断言。(错误# 21383882)
对于调试版本,缺少错误检入
Item_sum_hybrid: fix_fields ()
导致引发断言。(错误# 21383714)调用
ST_Buffer ()
可以挂起或提出断言。(错误# 21372946)如果将服务器配置为监听已被另一个服务器实例使用的TCP/IP端口号,则服务器可能以不干净的方式退出。(错误# 21368299)
的某些子查询作为参数
过程分析()
可能导致服务器退出。(错误# 21350175)在派生表中具有右外部连接的查询可能返回错误的数据。(错误# 21350125)
使用以下命令启动服务器
——skip-grant-tables
(或者用——初始化
的——skip-grant-tables
是隐含的)防止的安装插件
而且卸载插件
来自工作的陈述。(错误# 21335821)mysql_ssl_rsa_setup会产生一个不需要的
.rnd
数据目录中的文件。(该文件实际上是由openssl,这mysql_ssl_ras_setup调用。mysql_ssl_rsa_setup现在清理文件)(Bug #21335818)一些
INFORMATION_SCHEMA
由于次优查询计划和物化不足,查询消耗了过多的内存。(错误# 21299665)配置为向。发送错误消息的服务器
syslog
或日志文件,在错误日志设置之前生成的消息被发送到stderr
或stdout
.这些消息现在被缓冲,直到错误日志设置完成,然后被记录到适当的目的地。(错误# 21296553)类的子查询中使用派生表和聚合函数执行准备好的语句
选择
列表可能导致服务器退出。(错误# 21277074)格兰特
为不存在的帐户创建帐户,即使NO_AUTO_CREATE_USER
启用SQL模式。(错误# 21271571)的查询
不是在
的子查询数(不同的)
可能返回不正确的结果。(错误# 21243772)当使用非常旧的数据目录(从MySQL 5.0开始)启动时,服务器可能会因为无法正确读取旧的授权表而退出。(错误# 21216433)
涉及使用临时表更新的生成列的多表更新可能导致服务器退出或引发断言。(错误# 21216067)
用于包含表单表达式的查询
(
,半连接和子查询物化策略的组合可能会导致服务器退出。(错误# 21205577)x
在(子查询
)在(subquery2
)如果查询包含外部连接,例如
LEFT JOIN (t1,t2,…)
如果使用一个提示禁用右侧表上的连接缓冲,但没有禁用其他表上的连接缓冲,则会出现服务器退出。(错误# 21205282)的游标类型
CURSOR_TYPE_READ_ONLY
,检索第一次执行的结果集调用
语句可能缺少第一行结果集,如果数据是数值型的;如果数据是字符串,则为调试构建引发断言;调用时导致服务器连接丢失mysql_stmt_fetch ()
.(错误# 21199582)控件关闭时,悬浮的blopointer可能仍然存在
InnoDB
表,导致后续读取无效内存并退出服务器。(错误# 21153489)对于某些需要临时表进行排序或分组的操作,表可能没有列并引发断言。(错误# 21143151)
包含表单表达式的查询
(
可能导致服务器退出。(错误# 21139402)x
null) in (子查询
)在服务器SSL文件自动生成过程中,
ca.pem
短暂拥有不安全的文件权限。(错误# 21138119)的错误处理可能会引发断言
选择……更新
子查询导致死锁并导致回滚。(错误# 21096444)的结果
INSERT ()
将输入作为十六进制字符串传递给的函数调用可能会公开比传递给函数的更多的信息。(错误# 21056907)子查询有
COUNT ()
与集团
可能产生不正确的结果。(Bug #21055139, Bug #78029, Bug #21615020)视图的可更新属性是在视图创建时设置的。如果删除基础表并将其重新创建为不可更新的表,则原始视图的可更新属性不会相应修改。这可能导致试图插入或替换视图的服务器退出。(这个问题特定于有多个表/视图的视图,而不会发生在更新语句中。)
提供的锁定功能
version_tokens
插件被重命名:vtoken_get_read_locks ()
,vtoken_get_write_locks ()
,vtoken_release_locks ()
现在被命名为version_tokens_lock_shared ()
,version_tokens_lock_exclusive ()
,version_tokens_unlock ()
,分别。这些函数也没有产生任何效果,因为它们是在设置它们的语句末尾隐式解锁的。(Bug #21034322, Bug #21280801)
通过yaSSL链接并使用GCC 4.8.2编译的服务器可能在启动几秒钟后才会正确响应连接尝试。(错误# 21025377)
升级旧数据目录(MySQL 5.0或5.1)时,mysql_upgrade可能无法正确阅读
mysql.proc
表格(错误# 20968596)对于有子分区的表,如果可以识别出分区而不能识别子分区,则在分区修剪期间,由于错误的错误处理,服务器可能会退出。(错误# 20909518)
mysql_upgrade在修复阶段可能无法在错误的数据库中查找已检查的表。(错误# 20868496)
删除
可以在使用表别名时检查错误数据库的特权。(错误# 20777016), mysqldump对生成的列定义使用了错误的语法。(错误# 20769542)
在触发器中,使用已访问的游标
老
或新
来自一行的值可能导致服务器退出。(错误# 20760261)类执行过程中的失败
XA准备
语句可能导致XA事务状态无效。后续启动另一个XA事务的尝试导致ER_XAER_OUTSIDE
错误。(错误# 20538956)审计日志插件可以审计在
audit_log_exclude_accounts
系统变量。(错误# 20408206)如果生成的外键索引被重命名为
ALTER TABLE
语句添加了具有相同名称的新外键,则服务器可以退出。(错误# 20146455)ALTER TABLE
删除和添加相同的操作全文
索引没有作为避免使用表的临时副本的就地(快速)操作执行。(错误# 20106837)当天数计算
DATE_FORMAT ()
函数为负,则服务器可以退出。(错误# 19985318)ALTER TABLE
添加或修改列的操作可能会由于缺少验证而创建包含无效数据的几何列。(错误# 19880316)如果在第一部分是字符串列的索引上尝试范围优化,并且用于比较的值被完全截断,则比较将是不正确的,并产生不正确的结果。(错误# 19333852)
这个问题是Bug #16407965的回归。
由于对查询中使用的聚合函数的错误清理,服务器可能挂起。(错误# 18979515)
类中使用聚合函数的某些查询需要使用适当的索引时,服务器可以退出
在哪里
条款。(错误# 18706592)在Windows上,
validate_password
插件可能在字典检查期间导致服务器退出。(错误# 18636874)调用存储程序时不使用数据库名称限定它可能会导致存储程序编译错误。(错误# 18599181)
解释
的语句包含GROUP_CONCAT ()
可能导致服务器退出。(错误# 17865675)的值
FOUND_ROWS ()
函数返回在上一个查询中找到的行数,在执行下一个查询期间可能会发生更改。现在的价值FOUND_ROWS ()
对于上一个查询,在执行下一个查询时保持不变。(错误# 17846246)检查错误条件失败可能导致某些更新或删除导致服务器退出。(错误# 17763238)
在Windows环境下,审计日志插件中的堆损坏导致服务器启动失败。(错误# 14700102)
如果
更新
的一部分插入……重复密钥更新
交换两个列值,服务器可以读取不正确的数据并退出。(错误# 13901905)对于调试构建,将派生表合并到外部查询块可能会引发断言。(Bug #79502, Bug #22305361, Bug #21139722)
mysqlpump使用Clang编译失败。(Bug #78637, Bug #21924096)
对于调试版本,a
下降触发
语句可以引发断言,如果触发器定义在包含已生成列的表上。(Bug #78408, Bug #21824519)中的一些压力测试文件
mysql-test /套件/ innodb_stress
目录设置了可执行文件模式,尽管它们不是脚本文件。(Bug #78403, Bug #21822413)使用派生表并包含引用该派生表列的集合函数的子查询可能聚合在错误的查询块中。(Bug #78250, Bug #21753180)
对于某些输入,
ST_Union ()
可能返回无效的几何集合。(Bug #78206, Bug #21689998)在非windows系统上,设置
range_alloc_block_size
或query_alloc_block_size
如果在启动时输入大于32位的值,可能会导致服务器退出。这些系统变量的最大值(在所有平台上)现在限制为232−1,取整到1024的最接近倍数。(Bug #78188, Bug #21682231)mysql-test-run.pl现在有一个
——valgrind-clients
选项,该选项将导致所有客户机由test
要运行的文件valgrind.这个选项需要valgrind3.9或更高版本。此外,修复了几个客户端内存泄漏问题。(Bug #78165, Bug #21672747)
的mysql客户端解析器错误地解释了包含的优化器提示注释
;
,"
,'
,或`
字符。(Bug #78114, Bug #21646026)这些版本令牌问题得到了解决:
version_tokens_delete ()
现在在其参数中去除标记名称周围的空格,类似于version_tokens_set ()
而且version_tokens_edit ()
.通过
零
来version_tokens_delete ()
导致服务器退出。传递一个带有空标记名的参数
version_tokens_set ()
或version_tokens_edit ()
导致服务器退出。通过
零
的超时值version_tokens_lock_exclusive ()
或version_tokens_lock_shared ()
导致服务器退出。
(Bug #78111, Bug #21645001, Bug #21646106, Bug #21645944, Bug #21646017)
从左连接的右表(也是派生表)中选择的列可能会产生不正确的结果
零
值信息时使用在
子查询。(Bug #77980, Bug #21574933)这个问题是Bug #14358878的回归。
在Windows上,如果MySQL服务器作为服务启动,则错误日志文件的日志记录将被禁用。(Bug #77977, Bug #21574096)
这个问题是Bug #21328041的回归。
在
setup_instruments
性能模式表,可以设置内存仪表时间= '是的'
,尽管内存操作从不计时。现在,这样的尝试被忽视了。可以设置内置的存储设备(使用形式的名称)内存/ performance_schema / %
)启用= '是的'
,虽然内置的内存仪器不能被禁用。现在,这样的尝试被忽视了。(Bug #77944, Bug #21562212), mysqldump而且mysqlpump输出包括
sys
模式存储程序时sys
Schema没有被转储。(Bug #77926, Bug #21549860)如果配置文件包含多个,RPM安装脚本将失败
datadir
行。现在是最后一个datadir
使用Line。(Bug #77878, Bug #21527467)一个不必要的
memset ()
已经删除了在性能模式摘要操作期间调用的调用,这通过减少开销提高了性能。(Bug #77863, Bug #21528683)修正了安全互斥锁实现的潜在竞态条件。默认情况下,此实现仅用于调试版本。(Bug #77862, Bug #21522888)
二值测井
创建用户
语句可以记录密码散列的散列(而不是散列本身)log_backward_compatible_user_definitions
被启用。二值测井改变用户
语句可以包含原始语句中不存在的属性。在修复了这些问题之后,
log_backward_compatible_user_definitions
已经被log_builtin_as_identified_by_password
.如果启用此变量,则二进制日志记录创建用户
包含内置身份验证插件的语句重写语句以包含密码识别
条款,设置密码
语句的日志记录为设置密码
语句,而不是被重写改变用户
语句。(Bug #77860, Bug #21516392, Bug #20535561)mysqld——初始化产生了关于丢失SSL文件的警告,这是不必要的,因为初始化不需要SSL。(Bug #77825, Bug #21498544)
在对包含生成列的表进行分区修剪时,可能会发生Valgrind错误。(Bug #77782, Bug #21469535)
当mysqlpump的方法调用
——defer-table-indexes
选项,它可能生成不正确的创建表
具有外键和主键但没有辅助索引的表的语句。(Bug #77759, Bug #21462732)尝试使用以前未使用的时区
CONVERT_TZ ()
会产生警告或错误,或者(在调试版本中)在启用gtid但未启用二进制日志时抛出断言。在调试版本中,尝试使用以前未使用的时区
CONVERT_TZ ()
的值time_zone
存储程序中的系统变量可能引发断言。(Bug #77753, Bug #21459999, Bug #77748, Bug #21459795)的服务器初始化脚本mysql服务状态命令有时会错误地报告服务器已停止。(Bug #77696, Bug #21768876)
ALTER TABLE
可以对列位置大于64的索引虚拟列的表引发断言。(Bug #77656, Bug #21391781)对虚拟生成列的计算可能无法计算所有基列,并导致无效的内存读取。(Bug #77653, Bug #21390605)
对于表格中的语句
创建表…选择
,其中表被定义为包含十进制无符号
时,行大小计算错误,导致表中值不正确。(Bug #77636, Bug #21383896)一个
在哪里
包含两者的谓词削减(主要. .)
而且削减(落后于…)
可能会被不正确地优化掉。(Bug #77631, Bug #21447969)对于等待事件,性能模式使用
周期
定时器默认,但失败回落到一个不同的定时器,如果周期
是不可用的。(Bug #77577, Bug #21374104)对象执行时磁盘已满的情况
创建表空间
语句导致服务器退出。(Bug #77556, Bug #21347001)派生表的特权预检查可能失败并导致服务器退出。(Bug #77525, Bug #21338077)
对于空间函数,输入多边形在打开时自动关闭。然而,开放地理空间联盟准则要求输入多边形已经关闭。未关闭的多边形现在被拒绝为无效而不是被关闭。(Bug #77505, Bug #21327888)
当一个
虚拟
如果将生成的列添加到表中,则不能确保由生成的列表达式计算的数据不会超出列的范围。这可能导致返回不一致的数据和意外失败的语句。ALTER TABLE
现在支持没有验证
而且与验证
子句来控制是否ALTER TABLE
的数据进行验证虚拟
生成的列:与
没有验证
(如果没有指定子句,则为默认值),执行原地操作(如果可能的话),不检查数据完整性,语句更快地完成。但是,如果值超出范围,以后从表中读取可能会报告列的警告或错误。与
与验证
,ALTER TABLE
复制表。如果出现超出范围的错误或任何其他错误,语句将失败。由于执行的是表拷贝,所以该语句需要更长的时间。
没有验证
而且与验证
只允许携带添加一列
,改变列
,修改列
操作。(Bug #77478, Bug #21317507)对于某些字符串函数,在子查询中求值时,由于创建临时表保存中间结果时的空间计算不正确,数据会被截断。(Bug #77473, Bug #21317406)
语句摘要不包括关于优化器提示注释的信息,导致有提示和没有提示的语句被聚合。(Bug #77414, Bug #21286261)
谓词形式的谓词
圆(
,在那里X
,Y
) > 0X
列名称和Y
是一个程序局部变量,当它应该返回true时可能返回false。(Bug #77391, Bug #21279005)ST_SymDifference ()
使用多多边形参数可能返回不正确的结果。(Bug #77372, Bug #21263152)更新
VARCHAR
而且文本
相同的列更新
语句可能产生不正确的结果。当一个VARCHAR
列被分配给一个文本
列和VARCHAR
列设置为不同的值文本
列的结果包含VARCHAR
列的新值。(Bug #77135, Bug #21143080)中的子查询
有
子句返回多行可能导致服务器退出。除了bug修复之外,
解释
现在显示零极限
而不是不可能的,
在优化查询时极限0
.(Bug #76998, Bug #21067109)如果一个
INFORMATION_SCHEMA
执行表打开操作的查询遇到损坏的表并试图修复它,可能会发生死锁,导致事务中止,而没有报告适当的错误。这样的查询现在不会尝试表修复。(Bug #76912, Bug #21021848)Mysqladmin -u root -p可能退出与分割错误。(Bug #76538, Bug #20802751)
类中的子查询有时会为派生表生成索引
从
条款)。如果在存储程序中执行的语句发生这种情况,则可能发生内存泄漏。(Bug #76349, Bug #20728894)如果从表中选择的预期行数在0到1之间,优化器对过滤条件的估计可能导致次优执行计划。现在估计至少是1。(Bug #76314, Bug #20701585)
方法指定的文件
init_file
系统变量,mysqld——初始化为文件中的语句产生错误,例如格兰特
影响用户帐户。(Bug #75918, Bug #20546898)类的范围扫描时,优化器可能错误地假定内存不足的情况
或
运算符,导致对符合条件的行数估计过高。(Bug #75248, Bug #20229614)的
events_statements_history
性能模式表可以有错误
当其他列表示有错误时,列值为0。(Bug #74614, Bug #19929832)的视图创建
联盟
失败,出现重复列错误选择
的声明联盟
除了第一个,使用相同的列名多次。(Bug #74539, Bug #19886430)写入慢查询日志的时间戳值可能不正确。(Bug #73974, Bug #19646918)
当mysql客户端使用密码过期的帐户以批处理方式连接到服务器,错误消息没有意义。mysql现在的报告”请使用——connect-expired-password选项或在交互模式下调用mysql”在这种情况下。(Bug #72696, Bug #21464621)
为
更新
语句与命令
,优化器可能执行不必要的filesort
在一个用于扫描和更新的密钥上。(Bug #72518, Bug #18698556)对于具有许多范围条件的查询,优化器会估计范围扫描将需要太多内存,并退回到较不优化的计划,如全表扫描。
一个新的
range_optimizer_max_mem_size
系统变量现在控制范围优化器的内存消耗限制。值为0表示”没有限制。”如果优化器考虑的执行计划使用范围访问方法,但优化器估计该方法所需的内存量将超过限制,则放弃该计划并考虑其他计划。(Bug #70247, Bug #17413040, Bug #17769777)具有该表单的空XML元素
< / >元素
没有被正确处理加载XML
声明。(Bug #67542, Bug #16171518)如数开
MyISAM
表的增加,检查表是否打开的查找变得昂贵,特别是当表没有打开时。查找性能得到了改进,开销的减少尤其有利于对具有较大值的大量表进行选择table_open_cache
而且table_definition_cache
.(Bug #49177, Bug #11757169)