这是一个里程碑版本,使用风险自负。不支持里程碑版本之间(或从里程碑版本到GA版本)的升级。重要的开发更改发生在里程碑版本中,您可能会遇到兼容性问题,例如除了通常的运行过程外还需要注意的数据格式更改mysql_upgrade.例如,您可能发现有必要将数据转储到, mysqldump在升级之前重新加载它。(在任何情况下,升级前进行备份都是一种谨慎的预防措施。)
为纪念
这个版本是为了纪念MySQL工程家族的两位年轻工程师Astha和Akhila,他们在20岁出头的时候就去世了。这是一个小小的纪念,也是一种感谢您对5.7版本所做贡献的方式。我们会想念你的。
MySQL现在包含一个
gb18030
支持中国标准GB18030字符集的字符集。有关MySQL字符集支持的更多信息,请参见字符集,排序规则,Unicode.
清理源代码库的工作已经完成,包括:删除不需要的CMake检查;从源文件中删除未使用的宏;重新组织头文件以减少依赖的数量并使它们更加模块化,删除没有定义的函数声明,用行业标准库中的等价函数替换本地编写的函数。
不兼容的更改
请注意这里所描述的更改
ERROR_FOR_DIVISION_BY_ZERO
,NO_ZERO_DATE
,NO_ZERO_IN_DATE
当显式命名时不做任何事情,并在严格模式中包含它们在MySQL 5.7.8中被恢复(参见MySQL 5.7.8(2015-08-03,发布候选版本)).目的仍然是将它们与严格模式结合使用,因此在5.7.8中,如果启用了它们而没有同时启用严格模式,则会出现警告,反之亦然。的
ERROR_FOR_DIVISION_BY_ZERO
,NO_ZERO_DATE
,NO_ZERO_IN_DATE
SQL模式现在已被弃用,显式命名时不执行任何操作。相反,它们的效果包含在严格SQL模式(STRICT_ALL_TABLES
或STRICT_TRANS_TABLES
).换句话说,严格模态现在的意思和之前严格模态加上ERROR_FOR_DIVISION_BY_ZERO
,NO_ZERO_DATE
,NO_ZERO_IN_DATE
模式。此更改减少了依赖于严格模式的SQL模式的数量,并使它们成为严格模式本身的一部分。在这个版本的MySQL中,为SQL模式的变化做好准备是明智的之前升级为读MySQL 5.7中的SQL模式更改.该讨论提供了评估应用程序是否会受到这些更改影响的指导方针。
的
ERROR_FOR_DIVISION_BY_ZERO
,NO_ZERO_DATE
,NO_ZERO_IN_DATE
SQL模式名仍然被识别(因此引用它们的语句不会产生错误),但在未来的MySQL版本中将删除它们。要为不存在这些模式名的MySQL版本做准备,应该修改应用程序以不引用它们。InnoDB:的
UNIV_LOG_DEBUG
调试标志,不再是完全功能,已被删除。(错误# 18080537)InnoDB:的
innodb_use_sys_malloc
而且innodb_additional_mem_pool_size
在MySQL 5.6.3中弃用的系统变量在MySQL 5.7.4中被移除。InnoDB:的
InnoDB
表空间监视器和InnoDB
在MySQL 5.7.4中删除了表监视器。可以获取表和表空间元数据INFORMATION_SCHEMA
表。的
stage/sql/等待获取readlock
性能架构工具不再使用,已被删除。(Bug #71298, Bug #18035404)弃用的msql2mysql,mysql_convert_table_format,mysql_find_rows,mysql_fix_extensions,mysql_setpermission,mysqlaccess公用设施被拆除了。(错误#27482,错误#69012,错误#69014,错误#69015,错误#69016,错误#69017,错误#11746603,错误#16699248,错误#16699279,错误#16699284,错误#16699317,错误#18179576)
mysqlbug,一个用于生成错误报告的过时脚本,已经从源代码中删除。这个脚本的头包含了MySQL是如何配置和编译的信息,这对于在错误报告中包含它是很有用的。类似的信息可以在
文档/ INFO_BIN
MySQL安装文件。弃用的
忽略
条款ALTER TABLE
已删除,使用它会产生错误。元数据锁定子系统现在使用无锁算法来获取和释放DML语句典型的锁。这在涉及大量小型只读事务的工作负载的多核机器上提供了更好的性能/可伸缩性。
元数据锁定子系统现在也使用无锁散列,而不是使用互斥锁保护的散列。这种变化的一个含义是
metadata_locks_cache_size
而且metadata_locks_hash_instances
系统变量不再有任何作用,所以它们已被弃用,并将在未来的MySQL版本中删除。
性能模式的性能通过以下方式得到了提高:
当一个线程连接时,所有每线程统计信息的重置现在被延迟,直到统计信息被实际收集。这种惰性初始化有利于具有非常短时间会话的工作负载,对这些会话禁用了检测。
当一个线程断开时,每个线程的统计信息只聚合到实际收集的数据的父统计信息。这种优化有利于具有非常短时间会话的工作负载,这些会话禁用了插装。
对于语句插装,重置一个个体
EVENT_NAME
统计信息现在也会延迟到统计信息实际收集完毕。这有利于只包含少数几种类型语句的所有工作负载(选择
,插入
,更新
,删除
,等等)从MySQL支持的非常大的集合语句。只有实际执行的事件名的语句才会在断开连接时聚合。通过删除一些为将来使用保留的、实际上没有使用的属性,可以减少内部内存缓冲区的内存占用。特别是,互斥锁、rwlock和条件的统计现在需要更少的内存。
Performance Schema现在检测准备好的语句(用于二进制和文本协议):
关于预备报表的信息可在
prepared_statements_instances
表格该表支持对服务器中使用的准备语句进行检查,并提供关于它们的汇总统计信息。的
performance_schema_max_prepared_statements_instances
系统变量控制表的大小。的
Performance_schema_prepared_statements_lost
状态变量表示有多少准备好的语句无法检测。
有关更多信息,请参见prepared_statements_instances表.
如果您从较早的版本升级到这个MySQL版本,您必须运行mysql_upgrade(并重新启动服务器)将这些更改合并到
performance_schema
数据库。参考文献:参见:Bug #18324285。
不兼容的更改:MySQL现在允许数据库管理员建立一个密码自动过期的策略:任何使用密码过期的帐户连接到服务器的用户都必须修改密码。该实现有以下组件:
的
default_password_lifetime
系统变量定义全局密码过期策略。的值N
大于零意味着密码的生命周期是N
天。值为0禁用密码自动过期。默认值是360;密码必须大约每年更改一次。的
mysql.user
表中有存储个人帐户到期策略信息的新列:password_last_changed
指示密码最后一次更改的时间。当客户端连接时,服务器使用此列来确定密码是否超过了有效期,并且必须根据有效的过期策略进行更改。password_lifetime
帐户密码的生存时间。的值N
大于零意味着密码的生命周期为N
天。0禁用密码自动过期。零
(默认值)表示应用全局过期策略。
的
改变用户
语句有新的选项,可为个人帐户设置密码过期策略。
如果您从较早的版本升级到这个MySQL版本,您必须运行mysql_upgrade(并重新启动服务器)将更改合并到
mysql.user
表格对于每个账户,mysql_upgrade方法的执行时间password_last_changed
列和集password_lifetime
来零
.这将导致默认的全局过期策略生效(密码的生命周期为360天)。有关更多信息,请参见密码管理,ALTER USER语句.
不兼容的更改:MySQL部署安装mysql_install_db现在默认情况下是安全的。实现了以下修改,作为默认的部署特性:
安装过程只创建一个
根
账户,“根”@“localhost”
,自动为该帐户生成随机密码,并标记密码过期。MySQL管理员必须以根
使用随机密码并使用设置密码
选择新密码。(随机密码在.mysql_secret
运行脚本的有效用户的主目录中的文件。)安装不会创建匿名用户帐户。
安装不会创建
测验
数据库。
的默认操作模式来实现这些更改mysql_install_db,它会在RPM安装操作期间自动调用。因此,更改还会影响调用的非rpm安装方法mysql_install_db手动。
因为mysql_install_db默认情况下,部署现在是安全的
——随机密码
选项是不必要的,已被删除。它已经被——skip-random-passwords
选择。您可以使用此选项显式生成为的部署不默认安全:没有生成随机密码
“根”@“localhost”
帐户。一个
测验
创建的数据库可被任何用户访问。
请注意mysql_install_db不再创建匿名用户账户,即使
——skip-random-passwords
.的mysql_secure_installation程序现在有一个
——使用默认
选项,该选项使程序以非交互方式执行。它可以用于无人值守的安装操作。
不兼容的更改:的
AES_ENCRYPT ()
而且AES_DECRYPT ()
函数现在允许块加密模式的控制,并接受一个可选的初始化向量参数:新
block_encryption_mode
系统变量控制基于块的加密算法的模式。默认值为aes - 128欧洲央行
,表示使用128位的密钥长度和ECB模式进行加密。一个可选的
init_vector
参数为需要它的加密模式提供初始化向量:AES_ENCRYPT (str,key_str(,init_vector]) AES_DECRYPT (crypt_str,key_str(,init_vector])
可以通过调用new生成用于初始化向量的随机字节串
RANDOM_BYTES ()
函数。
有关更多信息,请参见加密和压缩功能.
这些更改生成的语句使用
AES_ENCRYPT ()
或AES_DECRYPT ()
对于基于语句的复制不安全,不能将它们存储在查询缓存中。使用RANDOM_BYTES ()
对于基于语句的复制不安全,并且不能存储在查询缓存中。性能;InnoDB:
InnoDB
现在支持多个页面清理线程,用于从缓冲池实例中刷新脏页面。一个新的系统变量,innodb_page_cleaners
,用于指定页清理器线程数。的默认值。1
维护mysql 5.7.4之前的配置,其中只有一个页面清理线程。这个增强建立在MySQL 5.6.2中完成的工作之上,它引入了一个单一的页面清理器线程,将缓冲池刷新工作从InnoDB
掌握线程。InnoDB:
InnoDB
现在支持移动式表空间用于分区的特性InnoDB
表格和个人InnoDB
表分区。这种增强简化了分区表的备份过程,并支持在MySQL实例之间复制分区表和单个表分区。有关其他信息,请参见导入InnoDB表.(Bug #18121824, Bug #70196, Bug #18304194, Bug #71784)InnoDB:用于标识对象的参数
InnoDB
页被两个新类和褶皱
价值和zip_size
价值计算得到了优化。这些更改减少了传递给函数的页面标识符参数的数量,从而简化了代码。(错误# 18073495)InnoDB:如果系统表空间文件(”ibdata文件”)位于支持原子写的Fusion-io设备上,doublewrite缓冲自动关闭,所有数据文件使用Fusion-io原子写。由于doublewrite缓冲区设置是全局的,所以对于非fusion -io硬件上的数据文件,也会禁用doublewrite缓冲区。
该特性仅在Fusion-io硬件上支持,在Linux操作系统上仅在Fusion-io nvfs上启用。为了充分利用这一特性,一个
innodb_flush_method
设置O_DIRECT
建议。(错误# 18069105)InnoDB:反向索引叶页扫描已得到优化。
btr_pcur_restore_position_func ()
现在可以对反向游标执行乐观恢复,这减少了块- >互斥
根页上的争用,特别是并发反向扫描。(错误# 17666170)InnoDB:一个新的系统变量,
innodb_log_write_ahead_size
,允许您将重做日志的预写块大小配置为与操作系统或文件系统缓存块大小匹配的值,以避免”read-on-write”用于重做日志写入。当重做日志的预写块大小与操作系统或文件系统缓存块大小不匹配,导致重做日志块没有完全缓存到操作系统或文件系统时,就会发生写时读。避免读对写提高了重做日志写的吞吐量稳定性。(错误# 17571371)InnoDB:在线DDL支持扩展到以下常规和分区操作
InnoDB
表:修改表…引擎= INNODB
(当运行在InnoDB
表)在线DDL支持减少表重建时间,并允许并发DML。看到InnoDB和在线DDL.
(错误# 13975225)
InnoDB:新的全局配置参数,
innodb_status_output
而且innodb_status_output_locks
,允许您动态启用和禁用标准InnoDB
监控和InnoDB
锁定监视器的周期输出。以前,为周期性输出启用和禁用这些监控器需要创建和删除特殊命名的表(innodb_monitor
而且innodb_lock_monitor
).有关其他信息,请参见InnoDB监视器.复制:通过删除发送缓冲区的不必要重新分配,已经优化了二进制日志转储线程。以前,内存会被分配,然后为发送到slave的每个事件释放,即使这不是严格必要的。通过这种优化,MySQL Server可以通过让转储线程使用自适应的内存分配来更好地利用硬件资源,这也可以减少CPU的使用。(Bug #11747349, Bug #31932, Bug #11752288, Bug #43426, Bug #13727951)
复制:现在在许多情况下都可以执行
将master更改为
未经首次发行停止奴隶
.的行为中实现以下更改来添加此功能将master更改为
语句,它现在只取决于从SQL线程或从I/O线程是否停止,如下所述:如果SQL线程停止,则可以执行
将master更改为
使用RELAY_LOG_FILE
,RELAY_LOG_POS
,MASTER_DELAY
选项,即使从I/O线程正在运行。当I/O线程运行时,此语句不能使用其他选项。如果I/O线程停止,则可以执行
将master更改为
使用此语句的任何选项除了RELAY_LOG_FILE
,RELAY_LOG_POS
,或MASTER_DELAY
,即使SQL线程正在运行。这三个选项不能在I/O线程运行时使用。SQL线程和I/O线程在发出之前都必须停止
将master更改为
与Master_auto_position = 1
.
如果正在使用基于语句的复制和临时表,则可以使用
将master更改为
后面的语句。停止奴隶
语句在从服务器上保留临时表。作为这组改进的一部分,现在每当发生这种情况时都会发出警告。在这种情况下,您可以通过确保Slave_open_temp_tables
在执行这些语句之前等于0。有关更多信息,请参见CHANGE MASTER TO语句,故障切换过程中切换源.
复制:实现了发送和接收半同步复制确认信号的独立线程,以便事件流和ACK流可以同时发送和接收。这将减少许多常见的延迟,从而在许多设置中提高半同步复制的性能。
Solaris:在Solaris中,mysql_config——填词现在包括
- r
这样可以在运行时找到库。(错误# 18235669)/道路/ /库
在Windows上,
NOMINMAX
设置时使用ADD_DEFINITIONS ()
CMake宏而不是config.h.cmake
所以它是设置的,甚至没有包括my_config.h
.(错误# 18192896)CMake支持编译MySQL用海湾合作委员会在Solaris上进行了改进。Solaris的二进制发行版现在使用海湾合作委员会而不是Sun Studio,以支持编译不由Sun Studio处理的代码。除了嵌入式库之外,客户端程序和客户端库仍然使用Sun Studio构建。
这种变化的结果是,在Solaris上,mysql_config不再为链接到嵌入式库提供参数,因为现在使用海湾合作委员会而不是Sun Studio。要获得嵌入式库的链接参数,请使用替代脚本mysql_server_config代替。(Bug #18146422, Bug #17826757)
的
CHECK_FUNCTION_REPLACEMENT ()
CMake宏已从Windows.cmake
替换函数是显式设置的,因为检查的结果已经硬编码进去了WindowsCache.cmake
.(错误# 18116661)MySQL现在使用Clang 3.4编译。(错误# 18047020)
在MySQL 5.7.1中,MySQL测试套件mysql-test-run.sh程序被修改以启动服务器
InnoDB
而不是MyISAM
默认存储引擎。MySQL测试套件中的所有测试都被修改为包含一个force_default_myisam.inc
文件。必须这样做,因为大多数遗留测试结果都记录在MyISAM
引擎和失败的结果差异,如果运行InnoDB
.正在进行一个迁移和删除这些测试的项目force_default_myisam.inc
用于不需要的测试MyISAM
.在5.7.4中rpl
而且binlog
迁移了套房和主套房的部分。(错误# 17902011)添加了性能模式检测来捕获事务事件的gtid。(错误# 17799147)
的性能模式开销减少了
pfs_lock
一般原子操作的实现和使用。(错误# 17766582)CMake如果使用的是2010年以前的Visual Studio版本,现在会中止Windows上的配置过程。(错误# 17730320)
一个新的CMake选项,
WITH_MSAN
,允许为支持MemorySanitizer的编译器启用它。(错误# 17632319)在此之前,
ALTER TABLE
在MySQL 5.6中可以修改一个表,使结果同时具有5.5和5.6格式的时态列。现在ALTER TABLE
将旧的时态列升级为5.6格式添加一列
,改变列
,修改列
,添加索引
,力
操作。方法无法完成此转换原地
算法,因为表必须重建,所以指定算法=原地
在这些情况下会导致错误。指定算法=复制
如果有必要的话)。当
ALTER TABLE
是否产生一个时间格式转换,它生成一个可以显示的消息显示警告
:旧格式的TIME/TIMESTAMP/DATETIME列已升级为新格式
.(错误# 17246318)的
mysql_version.h
File定义了两个新的宏,LIBMYSQL_VERSION
而且LIBMYSQL_VERSION_ID
,指示客户端库版本的字符串和数字形式。在MySQL Server发行版包含的客户端库中,这些宏的值与
MYSQL_SERVER_VERSION
而且MYSQL_VERSION_ID
.例如,在MySQL 5.7.4中,MYSQL_SERVER_VERSION
而且LIBMYSQL_VERSION
是“5.7.4-m14”
,MYSQL_VERSION_ID
而且LIBMYSQL_VERSION_ID
是50704
.在Connector/C发行版包含的客户端库中,
MYSQL_SERVER_VERSION
而且MYSQL_VERSION_ID
有Connector/C发行版所基于的MySQL版本的值,而LIBMYSQL_VERSION
而且LIBMYSQL_VERSION_ID
表示Connector/C版本。例如,Connector/C 6.1.3是基于MySQL 5.7.4的,所以MYSQL_SERVER_VERSION
而且MYSQL_VERSION_ID
有以下价值观“5.7.4-m14”
而且50704
,而LIBMYSQL_VERSION
而且LIBMYSQL_VERSION_ID
有以下价值观6.1.3”
而且60103
.
此外,
mysql_get_client_info ()
而且mysql_get_client_version ()
客户端库中的C API函数现在返回反映提供客户端库的发行版类型的值:在MySQL发行版中,
mysql_get_client_info ()
返回MYSQL_SERVER_VERSION
而且mysql_get_client_version ()
返回MYSQL_VERSION_ID
.这和以前一样。在连接器/C发行版中,
mysql_get_client_info ()
返回LIBMYSQL_VERSION
而且mysql_get_client_version ()
返回LIBMYSQL_VERSION_ID
.以前,这些函数返回MySQL版本,与MySQL发行版中相同。
(错误# 17171724)
降低了管理费用
filesort
比较操作。(错误# 14635144)根据社区反馈,默认值为10
eq_range_index_dive_limit
系统变量被证明太低了。默认值已提高到200。(Bug #70586, Bug #17587952)mysql_install_db在缺少所需的Perl模块时提供更有用的诊断消息。(Bug #69844, Bug #18187451)
CMake现在支持
-DTMPDIR =
选项指定默认值dir_name
tmpdir
价值。如果未指定,默认为P_tmpdir
在< stdio . h >
.感谢Honza Horak的补丁。(Bug #68338, Bug #16316074)MySQL现在支持执行的服务器端超时
选择
声明:选择
支持一个MAX_STATEMENT_TIME
选项指定单个查询的超时时间。例如:SELECT MAX_STATEMENT_TIME = 5000 id, name FROM my_table WHERE…
如果语句的执行超过了超时值,服务器将终止该语句。
的
max_statement_time
系统变量指定的超时值选择
在会话中执行的语句包含noMAX_STATEMENT_TIME
选择。如果该值为0,则表示不启用超时。的
Max_statement_time_exceeded
,Max_statement_time_set
,Max_statement_time_set_failed
状态变量提供有关的信息选择
受超时影响的语句。
超时值以毫秒为单位。
感谢Davi Arnaut为这个功能提供的补丁。(Bug #68252, Bug #16271666)
为DML语句获取元数据锁降低了开销。(Bug #58627, Bug #11765641)
对数函数返回
零
如果参数小于或等于0.0E0。他们现在也报告了一个警告”无效的对数参数”.(Bug #50507, Bug #11758319)使用Valgrind的代码没有预先分配内存
alloc_root ()
,以帮助查找bug。如果使用了ASAN(地址杀毒程序),现在也会启用此行为。(Bug #44582, Bug #11753184)服务器现在可以将客户机会话状态发生的更改通知客户机。可以报告客户端会话状态的这些属性的更改:
默认模式(数据库)。
系统变量的特定于会话的值。
用户定义的变量。
临时表。
准备好的语句。
更改通知发生在MySQL客户端/服务器协议中,它现在在OK包中包含跟踪器信息,以便检测会话状态的更改。跟踪器机制的一个用途是为MySQL连接器和客户机应用程序提供一种方法,以确定是否有任何会话上下文可用,以便允许会话从一台服务器迁移到另一台服务器。(为了在负载均衡的环境中更改会话,在决定是否可以进行切换时,需要检测是否有会话状态需要考虑。)
以下组件组成了用户界面,用于控制跟踪器并从中检索状态变化信息,从而支持在客户端实现状态变化跟踪:
当任何可跟踪的会话状态相关值发生更改时,客户机可以请求通知。控件控制通知,请启用或禁用
session_track_state_change
系统变量。默认情况下该变量是禁用的。客户端可以为特定类型的会话状态信息请求更改值的通知:
默认模式名。控件来控制名称通知,请启用或禁用
session_track_schema
系统变量。默认情况下该变量是启用的。系统变量的会话值。控件命名的系统变量发生通知
session_track_system_variables
系统变量。通知由每个更改的变量的名称和新值组成。缺省情况下,启用通知功能time_zone
,自动提交
,character_set_client
,character_set_results
,character_set_connection
.(后三个变量是受组名称
.)
为了使客户端应用程序从服务器返回的OK包中提取状态变化信息,MySQL C API提供了一对函数:
mysql_session_track_get_first ()
获取从服务器接收的状态更改信息的第一部分。mysql_session_track_get_next ()
获取从服务器接收到的任何剩余状态更改信息。成功调用后mysql_session_track_get_first ()
,只要返回成功,就重复调用此函数。从C API中,可以通过传递获取状态变化信息
SESSION_TRACK_STATE_CHANGE
,SESSION_TRACK_SCHEMA
,或SESSION_TRACK_SYSTEM_VARIABLES
随着类型
的论证mysql_session_track_get_first ()
而且mysql_session_track_get_next ()
功能。有关更多信息,请参见客户端会话状态变化的服务器跟踪.因为有新的API函数,所以客户端库ABI版本增加到18.3。共享库名称现在在适当的地方包括18.3。
的mysqltest程序有
enable_session_track_info
而且disable_session_track_info
用于启用和禁用跟踪会话状态变化信息的命令。参见MySQL Server Doxygen文档,可在10bet官方网站https://dev.10bet靠谱mysql.com/doc/index-other.html.
有关更多信息,请参见客户端会话状态变化的服务器跟踪.
不兼容的更改:如果服务器是用
——default-authentication-plugin = sha256_password
选择。请注意此错误修复的结果是,MySQL 5.6.16客户端无法使用使用
sha256_password
插件,5.6.17客户端也不能连接到5.6.16服务器。类似地,MySQL 5.7.3客户端不能使用使用sha256_password
插件。(错误# 17495562)
InnoDB;复制:正在尝试重置复制从站,而
innodb_force_recovery
大于0
将返回一个神秘的错误消息:HY000:从存储引擎得到错误-1.错误信息已更改为:错误HY000:当innodb_force_recovery > 0时不允许操作.复制选项,如relay_log_info_repository =表
而且master_info_repository =表
中的表中存储信息InnoDB
.当innodb_force_recovery
大于0,则无法更新复制表,这可能导致复制管理命令失败。(Bug #17287443, Bug #69907)InnoDB;复制:一个
插入……在DUPLICATE KEY UPDATE
在具有多个惟一索引的表上运行的语句有时会导致事件被错误地写入二进制日志。(Bug #11758237, Bug #50413)InnoDB;复制:使用
InnoDB
memcached
插件(见InnoDB memcached插件),innodb_api_enable_binlog
设置为1导致服务器内存泄漏。(Bug #70757, Bug #17675622)InnoDB;微软的Windows操作系统:
截断表
在Windows上会报告多个chsize返回操作系统错误71错误。(Bug #18176071, Bug #71173)InnoDB;微软的Windows操作系统:在Windows上,5.7.3中引入的回归将允许在同步操作期间写入日志,这在某些Windows环境中由于一个问题不应该被允许。(错误# 17824101)
InnoDB;Solaris:某些Solaris版本中的加载器会拒绝启动gcc编译的二进制文件(例如
mysqld
二进制),它使用暂停
汇编指令。(错误# 18122171)InnoDB:一个
! sync_check_iterate(检查)
断言发生在fts_create_doc_id ()
在一次插入
操作。(错误# 18253210)InnoDB:
trx_undo_truncate_start
将写入重做日志临时撤销日志段,导致清除线程断言。(错误# 18252937)InnoDB:未使用的参数和变量以及禁用的功能已经从重做日志代码中删除。这个补丁还包括重做日志代码的改进,包括测试支持、Valgrind工具的添加和小型代码重构。(错误# 18251675)
InnoDB:用户定义的类型,
xid_t
,被多次定义。(错误# 18251254)InnoDB:双写缓冲区错误消息以不一致的方式引用了页码。(错误# 18242594)
InnoDB:
InnoDB
会对临时表空间执行不必要的重做日志写入和刷新。(错误# 18236692)InnoDB:的
truncate_t: drop_indexes
而且truncate_t: create_indexes
方法将在修改系统表空间时禁用重做日志记录。(错误# 18236000)InnoDB:对于全文查询,检查失败
num_token
小于max_proximity_item
可能导致断言。(错误# 18233051)InnoDB:一个无效的
memmove
在fts_query_fetch_document
会导致严重的错误。(错误# 18229433)InnoDB:
InnoDB
对临时表空间的一些操作将写入重做日志。(错误# 18226934)InnoDB:
log_mutex_exit
应该在之前调用log_buffer_extend
当日志缓冲区互斥锁被保持时。(错误# 18202904)InnoDB:GCC 4.4编译器将发出关于
InnoDB
解析函数,指示输出未初始化。(错误# 18192536)InnoDB:为了简化代码和减少内存使用,
InnoDB
以前存储在哈希表中的文件级操作的重做日志扫描记录现在立即被处理。(错误# 18180875)InnoDB:
innodb_ft_result_cache_limit
现在硬编码的最大值为4294967295字节或(2**32 -1)。的最大值以前定义为的最大值ulong
.(Bug #18180057, Bug #71554)InnoDB:一个
更新
导致内存访问错误lock_rec_other_trx_holds_expl
.事务清单(trx_sys - > rw_trx_list
)在没有获得事务子系统互斥锁的情况下被遍历(trx_sys - >互斥
).(错误# 18161853)InnoDB:
InnoDB
未能从doublewrite缓冲区恢复已损坏的系统表空间数据文件的第一页,导致启动失败。(Bug #18144349, Bug #18058884)InnoDB:临时表空间文件大小与指定的文件大小不匹配
——innodb-temp-data-file-path
由于文件大小分配逻辑错误。(错误# 18141070)InnoDB:Bug #14329288引入的回归会在压缩表无法装入内存时导致性能下降。(Bug #18124788, Bug #71436)
这个问题是一个Bug #14329288的回归。
InnoDB:的最大值
innodb_thread_sleep_delay
现在是100万微秒。之前的最大值(32位为4294967295微秒,64位为18446744073709551615微秒)太大了。因为的最大值innodb_thread_sleep_delay
是否受为设置的值的限制innodb_adaptive_max_sleep_delay
的最大值(当设置为非零值时)innodb_thread_sleep_delay
现在是否与的最大值相同innodb_adaptive_max_sleep_delay
.(错误# 18117322)InnoDB:的
fil_node_create
函数将执行不必要的哈希表查找。(错误# 18116588)InnoDB:
INFORMATION_SCHEMA。INNODB_TRX
包含一个伪造的事务ID,该事务ID值与其他地方打印的事务ID值不匹配。用于检索事务id的方法不一致。(错误# 18111007)InnoDB:启动服务器时,不需要”检查空间”日志消息将在处理doublewrite缓冲.(错误# 18101380)
InnoDB:编译错误(无法找到字符串文字操作符)时返回
c++ 11
模式。(错误# 18082139)InnoDB:在临时表上的群集索引损坏的情况下,服务器将在
插入
而不是返回错误。在普通表上的群集索引损坏的情况下,不会返回错误插入
会成功。(错误# 18064548)InnoDB:指定备用目录
InnoDB
表的使用datadir
然后移动.ibd文件到默认MySQL数据
目录将导致在尝试删除表
操作。(错误# 18063570)InnoDB:试图卸载
InnoDB
memcached插件,而InnoDB
memcached插件仍在初始化时会杀死InnoDB
memcached守护线程。卸载应该等待初始化完成。(错误# 18038948)InnoDB:全文标记器线程将终止,并出现错误的错误消息。(错误# 18021306)
InnoDB:在调试构建中,在二进制列上创建唯一索引,输入数据包含重复的键,将导致断言。(错误# 18010711)
InnoDB:的
srv_monitor_thread
会坠毁在lock_print_info_summary ()
函数之间存在竞态条件srv_monitor_thread
和清除协调器线程。(Bug #17980590, Bug #70430)InnoDB:布尔模式全文搜索查询将在解析期间导致内存访问冲突。(错误# 17978763)
InnoDB:日志功能的使用不一致。的错误修正将替换出现的
流(stderr,
而且消息
)fputs ()
与ib_logf ()
.另外,因为ib_logf ()
为每条消息发出一个时间戳,错误修正删除了不必要的ut_print_timestamp ()
.(Bug #17935793, Bug #17534737)InnoDB:由于解析器错误,包含子表达式的全文搜索查询可能返回错误的结果。(错误# 17840768)
InnoDB:的innochecksum工具没有使用特定于windows的API来检索文件大小信息,这导致了错误的错误消息(错误:ibdata1无法找到当MySQL 5.6innochecksum超过2GB文件大小限制。innochecksum现在MySQL 5.6和MySQL 5.7都支持大于2GB的文件。(Bug #17810862, Bug #70936)
InnoDB:由于修复Bug#17371537所引入的回归,当使用默认的memcached引擎作为数据的备份存储时,没有为默认的memcached引擎分配内存
InnoDB
.(错误# 17800829)InnoDB:为到期的撤消日志分配页面失败”桌子坐满了”错误消息而不是”撤消日志已满”错误消息。(错误# 17779822)
InnoDB:如果临时表处于活动状态时发生崩溃,
InnoDB
是否会在重新启动时报告无效的错误消息,指示临时表不存在InnoDB
内部数据字典。(错误# 17779729)InnoDB:
ut_free
可以连续调用不止一次。(错误# 17763472)InnoDB:修改索引树可能会导致死锁。(错误# 17754767)
InnoDB:中的竞态条件
DebugPolicy::输入()
会导致分割错误sync_array_cell_print
.(错误# 17713784)InnoDB:在丢弃表空间using后对表进行操作
修改表…丢弃表空间
可能会导致严重的错误。(错误# 17700280)InnoDB:持久的优化器统计信息会由于锁存争用而导致阻塞。(Bug #17699331, Bug #70768)
InnoDB:试图在禁用外键检查时添加无效的外键(
foreign_key_checks = 0
)会导致严重的错误。(错误# 17666774)InnoDB:对于调试版本,联机的表重建变体
ALTER TABLE
,当在具有BLOB列的表上运行时,将导致在row_log_table_apply_update
函数。对于普通构建,aDB_PRODUCTION
将返回错误。(错误# 17661919)InnoDB:一个
InnoDB
可能导致全文搜索失败”unended”令牌。应该传递字符串和字符串长度以进行字符串比较。(错误# 17659310)InnoDB:
匹配()与()
使用长字符串作为参数的查询对()
可导致在InnoDB
表中包含全文搜索索引。(错误# 17640261)InnoDB:以数字或特殊字符开头的数据库名称将导致全文搜索(FTS)解析器错误。(错误# 17607687)
参考文献:参见Bug #17607956。
InnoDB:在某些情况下,Bug #11758237的修复引入的回归会导致断言错误
插入……重复密钥更新
或取代
语句遇到DB_DUPLICATE_KEY
错误。(错误# 17604730)参考文献:此问题是Bug #11758237的回归。
InnoDB:在调试构建中,读取页面期间的合并插入缓冲区将导致内存访问冲突。(错误# 17561188)
InnoDB:Bug #16852278的补丁,它简化和优化了
InnoDB
,导致查询性能回归。(错误# 17543588)参考文献:参见:Bug #16852278。
InnoDB:在
sync0rw.ic
,rw_lock_x_lock_func_nowait
会不必要地打电话os_thread_get_curr_id
.(Bug #17509710, Bug #70417)InnoDB:删除一个memcached
InnoDB
表而memcached正在执行的DML操作将导致严重错误。(错误# 17468031)InnoDB:事件之后,如果立即发生崩溃,则服务器可能无法重新启动
重命名表
在一个ALTER TABLE
,重命名表
序列。(错误# 17463290)InnoDB:中更新表空间数据文件路径
.isl
文件中读取更新的表空间数据文件路径,然后执行崩溃恢复.isl
文件但是SYS_DATAFILES
表将不会不更新。的SYS_DATAFILES
表现在使用崩溃恢复后的新数据文件路径进行更新。(错误# 17448389)InnoDB:试图将表重命名为缺失的数据库将导致严重错误。(错误# 17447500)
InnoDB:如果每个表一个文件的表空间数据文件的第一页(第0页)损坏,恢复将停止,即使doublewrite缓冲区包含该页的干净副本。(Bug #17335427, Bug #70087, Bug #17341780)
InnoDB:的
InnoDB
memcached自述文件(README-innodb_memcached
)错误地指出libevent 1.6.0是静态链接到daemon的memcached.捆绑的libevent版本是1.4.12,而不是1.6.0。(Bug #17324419, Bug #70034)InnoDB:对象上至少有三个独立的插入
mysql.innodb_index_stats
表格改善创建表
表现上,现在有了单提交
操作,而不是每个插入操作一个。(Bug #17323202, Bug #70063)InnoDB:服务器将在断言中停止
lock_rec_has_to_wait_in_queue(锁)
由于与锁定相关的问题和事务被过早删除trx_sys - > rw_trx_set
.(错误# 17320977)InnoDB:的
ALTER TABLE
原地
算法降低自增值失败。(Bug #17250787, Bug #69882)InnoDB:注释
btr0cur.cc
错误地陈述btr_cur_pessimistic_update ()
而且btr_cur_optimistic_update ()
将接受NULL值。(Bug #17231743, Bug #69847)InnoDB:
dict_table_schema_check
所说的dtype_sql_name
不必要的。(Bug #17193801, Bug #69802)InnoDB:
fil_check_first_page ()
检查是否失败fsp_flags_get_zip_size ()
返回一个有效值,在启动时导致分割错误mysqld.(错误# 17033182)InnoDB:这个函数
os_file_get_status
不能使用原始设备。(Bug #17023438, Bug #69424)InnoDB:的
lock_rec_other_has_expl_req
函数lock0lock.cc
会做不必要的工作。(Bug #17016214, Bug #69576)InnoDB:Valgrind将在运行回滚调试测试时报告未初始化的值。Valgrind警告应该只出现在使用Valgrind工具的构建中。(错误# 16969876)
InnoDB:在崩溃恢复期间,不正确的事务活动时间将导致回滚未提交的事务。(Bug #16936961, Bug #69438)
InnoDB:堆块调试信息(
file_name
,lineno
),用于记录诊断,将出现在版本版本中。此信息应该只出现在调试版本中。(Bug #16924719, Bug #69422)InnoDB:一个在线
ALTER TABLE
操作将消耗比预期更多的内存。在网上ALTER TABLE
操作后,将为创建或重新构建的每个索引创建一个包含头和尾缓冲区的在线日志缓冲区。尾缓冲区是写入器上下文,只有在索引上进行并发写操作时才需要ALTER TABLE
操作正在进行中。头缓冲区是阅读器上下文,仅在日志应用阶段需要。为了减少内存消耗,现在在索引上运行第一个DML语句时分配尾缓冲区,而头缓冲区只在日志应用阶段分配,然后释放。(Bug #16868967, Bug #69325, Bug #17911720)InnoDB:重命名列,同时在其中添加或删除列
ALTER TABLE
操作将导致错误。(错误# 16864981)InnoDB:类型名(
srv_shutdown_state
)与变量名相同。的srv_shutdown_state
类型名称已更改为srv_shutdown_t
.(错误# 16735398)InnoDB:的
buf_buddy_relocate
函数将执行不必要的哈希查找。(错误# 16596057)InnoDB:在Windows上,全文搜索(FTS)对象ID不是预期的十六进制格式。(错误# 16559254)
参考文献:参见Bug #16559119。
InnoDB:服务器关闭将导致挂起,并将以下消息写入错误日志:”
InnoDB:等待清除线程挂起
.”(错误# 16495065)InnoDB:
InnoDB
启动失败innodb_data_file_path
通过追加以千字节为单位指定数据文件大小K
到大小值。(错误# 16287752)InnoDB:从缓冲池获取和释放页面以及跟踪页面状态都是昂贵而复杂的操作。在修复错误之前,这些操作是使用页面互斥锁执行的。使用页面互斥来跟踪多个内容是昂贵的,而且扩展性不好。错误修正将页面的获取和释放跟踪(使用状态)与页面I/O状态跟踪分离开来。现在在可用的地方使用原子跟踪获取和释放。
对于可移植性,一个新的CMake构建选项,
INNODB_PAGE_ATOMIC_REF_COUNT
(默认在
),可用于在原子支持不可用的平台上禁用原子页面引用计数。当启用原子页引用计数(默认)时,”[注]InnoDB:使用原子来引用缓冲池页面计数
”在服务器启动时打印到错误日志。如果禁用原子页引用计数,”[注]InnoDB:使用互斥锁来计数缓冲池页面
”打印出来。(Bug #16249481, Bug #68079)InnoDB:由于外部存储的blob的所有权信息处理不当,插入缓冲区合并将导致断言错误。
InnoDB:线程断言失败thread_num在ibuf0ibuf文件中。错误的断言:rec_get_deleted_flag(rec, page_is_comp(page))
(错误# 14668683)
InnoDB:减少了
auto_increment_increment
值将不会影响下一个自动递增的值。(Bug #14049391, Bug #65225)InnoDB:的表重命名错误将出现
最新外键错误
部份显示引擎innodb状态
输出。(Bug #12762390, Bug #61746)InnoDB:b树的页面锁存算法将锁定兄弟叶页,延长字典锁。bug修复实现了兄弟叶页的预取,以减少索引锁保持时间。(Bug #12734249, Bug #61736)
InnoDB:
BUF_READ_AHEAD_AREA
会经常打电话ut_2_power_up
适用于具有高I/O率的工作负载。现在只执行一次计算,结果存储在buf_pool_t
结构。(Bug #11762242, Bug #54814)InnoDB:
UNIV_SYNC_DEBUG
,在univ.i
修复了Bug#16720368,现在已经启用。(Bug #69617, Bug #17033591)分区:使用
index_merge
优化(见索引合并优化)在对由分区的表运行时可能返回无效结果哈希
.(Bug #17588348, Bug #70588)参考文献:参见Bug #16862316, Bug #17648468, Bug #18167648。
分区:当自上一个分区之后没有分区返回任何行时HA_ERR_KEY_NOT_FOUND错误,则在用于按顺序返回行的优先级队列中使用未初始化的内存可能导致服务器崩溃。(错误# 17401628)
复制:运行服务器时
——gtid-mode =
,停止奴隶
紧随其后的是开始的奴隶
导致提供的信息不匹配INFORMATION_SCHEMA。INNODB_TEMP_TABLE_INFO
和Slave_open_temp_tables
状态变量:INNODB_TEMP_TABLE_INFO
表显示没有临时表存在,但是Slave_open_temp_tables
有一个非零值。(错误# 18236612)复制:试图同时使用SSH连接的半同步复制导致服务器失败。(错误# 18219471)
复制:当
MASTER_HEARTBEAT_PERIOD
不包括在将master更改为
,语句resetSlave_heartbeat_period
到其默认值和Slave_received_heartbeats
为0。此时心跳周期不会被改变将master更改为
除非显式地使用MASTER_HEARTBEAT_PERIOD
.此外,语句不再重置Slave_received_heartbeats
.(错误# 18185490)复制:设置后
MASTER_SSL_CRLPATH
使用一个将master更改为
语句中未正确显示选项值SSL_CRL_PATH
的列replication_connection_configuration
性能模式表。(错误# 18174719)复制:的
MASTER_SSL_CRL
而且MASTER_SSL_CRLPATH
选项在使用yaSSL时不可用;MySQL复制现在将这些设置为零
无论何时启用yaSSL都会自动启动。(错误# 18165937)复制:mysqlbinlog方法时未释放其事件缓冲区使用的内存
——rewrite-db
选择。(错误# 18164998)复制:设置
slave_parallel_workers
到1或更大的值,启动从线程会导致从SQL线程使用,但直到重新启动从线程才会释放内存停止奴隶
而且开始的奴隶
.(Bug #18001777, Bug #71197)复制:当一个从配置了复制过滤器和
——log-warnings = 2
,每一条被过滤的语句都会导致在错误日志中写入一个条目。对于生成许多待过滤语句的繁忙服务器,其结果是错误日志可能迅速增长到许多gb大小。现在使用油门来处理这种错误,因此在给定的时间间隔内只打印一次错误消息,表示这个特定的错误在该时间间隔内发生了特定次数。(错误# 17986385)复制:当二进制日志I/O缓存刚好增长到32768字节,并且当前事务之前有一个大于32768字节的事务时,事件在写入二进制日志时可能会被损坏。(错误# 17842137)
复制:当主人和奴隶都有
gtid_mode =对
设置,并且在中继日志中仍然有GTID事务时停止从SQL线程,如果然后用gtid_mode =了
,然后从SQL线程执行它遇到的任何匿名事务,而不将其GTID写入二进制日志,其结果是GTID丢失。当奴隶后来被提升为主人时,这可能会导致问题,因为交易将在被提升的主人的奴隶上再次播放,很快导致这些奴隶上的不一致。(错误# 17827018)参考文献:参见Bug #17813449。
复制:当主人和奴隶都有
gtid_mode =了
设置,并且在中继日志中仍然存在匿名事务时停止从SQL线程,如果然后用gtid_mode =对
,然后从分配gtid这样的事务。当奴隶后来被提升为主人时,这可能会导致问题,因为交易将在被提升的主人的奴隶上再次播放,很快导致这些奴隶上的不一致。(错误# 17813449)参考文献:参见:Bug #17827018。
复制:创建和删除大量临时表可能会增加内存消耗。(错误# 17806014)
复制:
显示奴隶状态
报告时使用了不正确的值MASTER_SSL_CRL
而且MASTER_SSL_CRLPATH
.(Bug #17772911, Bug #70866)这个问题是Bug #11747191的回归。
复制:当
log_warnings
大于1时,主机打印二进制日志转储线程信息(包括从机ID、二进制日志文件名和二进制日志位置)inmysqld.1.err
.在这种情况下,大于20亿的从服务器ID打印为负值。(Bug #17641586, Bug #70685)复制:mysqlbinlog
——详细
在二进制日志中遇到损坏行事件时失败。这样的行事件还可能导致从服务器失败。(错误# 17632978)参考文献:参见Bug #16960133。
复制:二进制日志事件可以在被刷新到主服务器上的磁盘之前发送到从服务器,甚至当
sync_binlog
设置为1。当操作系统崩溃后重新启动主服务器时,这可能导致以下两个问题中的任何一个:复制无法继续,因为一个或多个从服务器正在请求主服务器上不存在的复制事件。
数据存在于一个或多个从服务器上,而不在主服务器上。
在较不持久的设置上预计会出现此类问题(
sync_binlog
不等于1),但不应该发生的时候sync_binlog
是1。若要解决此问题,请使用锁(LOCK_log
)现在在同步过程中保存,只有在二进制事件实际写入磁盘后才释放。(Bug #17632285, Bug #70669)复制:当运行奴隶与
slave_parallel_workers
在1或更大时,设置——slave-skip-errors =
导致错误日志被警告的实例填充从SQL:无法执行查询事件。详细错误:;,Error_code: 0.(Bug #17581990, Bug #68429)参考文献:参见:Bug #17986385。
复制:当在独立服务器上配置半同步复制时,没有从服务器和
rpl_semi_sync_master_wait_no_slave
被设定为从
,主人还在等着消
从奴隶那里。当rpl_semi_sync_master_wait_no_slave
设置为从
,当从端数量在指定的超时时间内为零时,主端应恢复正常复制。现在,在这种情况下,服务器检查半同步复制是否已打开,如果是,则继续检查是否有任何从端已连接。如果没有连接,半同步复制将被禁用,直到用户设置的值rpl_semi_sync_master_wait_no_slave
来在
.(Bug #17510411, Bug #70360)复制:控件的值可能的状态消息的数目
PROCESSLIST_STATE
的列线程
Performance Schema表的长度大于列的宽度(64个字符)。冗长的状态消息现在已被重写,并相应缩短。此修复适用于MySQL 5.7及更高版本。(错误# 17319380)
复制:
Seconds_Behind_Master
的输出显示奴隶状态
在某些情况下,当它应该有一个大于0的值时,可能被报告为0。(错误# 17233214)参考文献:参见Bug #16579028。
复制:在使用基于行的复制时,服务器没有正确处理大于4gb的行插入。(错误# 17081415)
复制:当使用基于行的复制时,表从版本上的附加自动递增列没有正确更新;取而代之的是一个零。(Bug #17066269, Bug #69680)
复制:涉及Performance Schema表的语句不应该写到二进制日志中,因为这些表的内容只适用于给定的MySQL Server实例,并且在复制拓扑中的不同服务器之间可能存在很大差异。数据库管理员应能够配置(
插入
,更新
,或删除
)或冲洗(截断表
)的性能模式表,而不会影响其他服务器。然而,当从MySQL 5.5主服务器复制到MySQL 5.5或更高版本的从服务器时,关于不安全语句更新Performance Schema表的警告被提升为错误。对于MySQL 5.6和以后的从库,这阻止了同时使用performance_schema
和gtid(参见使用全局事务标识符进行复制).中的表上的所有更新都会导致此修复
performance_schema
要在主服务器上筛选且不复制的数据库,而不管有效的日志记录类型是什么。在此修复之前,使用的语句被标记为不安全的复制,这在执行期间会引起警告;尽管如此,语句还是被写入二进制日志,而不管实际的日志格式是什么。中表的现有复制行为
INFORMATION_SCHEMA
此修复程序不会更改数据库。有关更多信息,请参见MySQL性能架构.(错误# 16814264)
参考文献:参见Bug #14741537, Bug #18259193。
复制:二进制日志中的无效事件偏移量并不总是得到正确处理,这可能导致复制失败。(Bug #16736412, Bug #69087)
复制:半同步复制插件被DDL语句调用了两次,每次递增
Rpl_semi_sync_master_yes_tx
每次执行这样的语句时,都用2代替1。(Bug #70410, Bug #17509011)复制:如果有许多转储线程(例如从mysqlbinlog或从I/O连接)同时工作。我们还发现,即使在转储连接不支持半同步复制的情况下,也会调用半同步的主插件函数,这将导致插件锁的锁定以及在必要的代码上浪费时间。
在此修复之后,非半同步转储线程不再调用半同步主函数来观察二进制事件。(Bug #70218, Bug #17434690)
微软的Windows操作系统:的rw-lock备份实现
my_atomic_ *
函数总是被使用。现在,在可用的地方使用本机Microsoft Windows实现。(错误# 18054042)微软的Windows操作系统:在Windows上,
——本地服务
选项没有工作,并且没有显示在——帮助
消息。(Bug #69637, Bug #17049656)Solaris:Solaris的MySQL发行版现在包含一个源tarball海湾合作委员会下
分享
目录,以符合包含c++运行时库所产生的GPL条件。(错误# 18306484)编译期间,尝试创建
sql_yacc.h
可以同时从多个目录中生成。(错误# 18319335)mysql_secure_installation错误地试图释放内存,并在读取选项文件尝试失败后异常退出。(错误# 18255657)
在打印服务器版本时,mysql客户端没有在字符串变量中检查缓冲区溢出。(错误# 18186103)
mysql_secure_installation退出,如果mysql_install_db已经运行了
——skip-random-passwords
选择。(错误# 18181665)如果配置了MySQL,编译失败
CFLAGS
设置为包含-Werror
带有参数的选项。(错误# 18173037)当优化器试图使用MRR或DS-MRR读取内部创建的临时表时,服务器可能退出或提出断言。(错误# 18172819)
的默认编译器标志
cmake / build_configurations / compiler_options.cmake
.可以通过CMake-DWITH_DEFAULT_COMPILER_OPTIONS = 0
选择。但是,对于C或c++编译器也可以关闭它CFLAGS
或CXXFLAGS
设置环境变量。这些环境变量现在没有这样的影响。要指定编译器标志,请使用
-DWITH_DEFAULT_COMPILER_OPTIONS = 0
选项,或-DCMAKE_C_FLAGS =
而且旗帜
-DCMAKE_C_FLAGS =
可以使用选项。(错误# 18158812)旗帜
处理索引合并的范围优化器代码中的错误可能导致服务器退出或结果集中缺少行。(错误# 18136628)
一个共享的
libmysqld
嵌入式服务器库不是在Linux上构建的。一个新的WITH_EMBEDDED_SHARED_LIBRARY
CMake选项现在使这成为可能。(Bug #18123048, Bug #16430656, Bug #68559)铸造过程中的类型
就像
模式匹配操作可能导致服务器退出。(错误# 18114294)mysql_config类调用时不正确地生成非空输出
——libmysqld-libs
(或同义词),如果MySQL配置了WITHOUT_SERVER
选择。(错误# 18102839)在同一源树中的重复重建导致
libmysqld.a
每次都在变大。(错误# 18082702)使用Visual Studio 2008在Windows上从源代码构建MySQL失败未找到标识符这是由Bug#16249481的补丁引入的回归导致的。(错误# 18057449)
这个问题是Bug #16249481的回归。
当从表缓存重新打开表,且当前线程没有为Performance Schema检测时,服务器退出,试图填充
OWNER_THREAD_ID
在table_handles
表格(错误# 18047865)在Solaris SPARC和Linux 64位平台上修复了链接故障。(错误# 18004599)
在服务器启动期间,在性能模式中发生了内存泄漏。(错误# 18003651)
建筑
libevent
错误地依赖于MySQL配置了-DWITH_INNODB_MEMCACHED = 1
选择。(错误# 17964544)在关闭期间,仍然锁定的互斥锁可能被移除,导致服务器退出。(错误# 17959898)
编译对Clang和GCC使用不同的警告标志,根据使用的编译器产生不同的警告输出。现在两个编译器的警告输出是一致的。(错误# 17959689)
在Solaris上,如果不是,则配置失败
STL_LIBRARY_NAME
被发现。(错误# 17954277)存储/ ndb / CMakeLists.txt
重置CMake缓存一些编译器标志,结果应该被保存。(错误# 17949504)的
SUM_SORT_MERGE_PASSES
中的列值events_statements_summary_by_digest
性能架构表计算错误。(错误# 17938255)如果
events_statements_summary_by_digest
当发现具有新摘要的语句时,性能模式表已满Performance_schema_digest_lost
状态变量没有增加。(错误# 17935314)当多个连接发生许多操作时,审计日志插件可能在日志文件旋转操作期间导致服务器退出。(错误# 17930339)
十进制非空
物品可以返回零
子查询。(错误# 17921777)力索引[为顺序](
没有工作的联接。index_name
)此bug的修复还更改了为
解释
.而不仅仅是打印{忽略|使用武力|}指数
现在也可以打印了For {group by | order by | join}
如果在查询中指定了。(错误# 17889511)mysql_secure_installation如果使用SSL连接,并且用户的密码过期,则退出。(错误# 17880395)
在服务器关闭期间,打开的连接线程可能无法完全关闭。(错误# 17863690)
对于调试构建,插入到多表视图可能会引发断言。(错误# 17834434)
当索引中没有出现关键部分时,优化器可以下推条件。(错误# 17814492)
启用了压缩客户机/服务器协议后,Performance Schema语句插装可能会引发断言。(错误# 17794846)
的
resetconnection
命令mysql如果服务器关闭或用户密码过期,则没有报告正确的错误。(错误# 17772561)排序规则中的缩写信息可能被错误处理,导致关于字符是否是缩写的一部分的错误判断,以及缩写权重的错误计算。(错误# 17760379)
可以提出断言,如果
filesort
当记录属性更改时,无法调整其主缓冲区的大小。(错误# 17757914)在行比较器设置过程中产生了Valgrind误差。(错误# 17755540)
Bug #16041903的补丁引入了一个错误
DBUG_ASSERT
这在调试版本中引发了一个虚假的断言。(错误# 17746721)这个问题是Bug #16041903的回归。
构建和执行问题被修复海湾合作委员会4.8.1在32位模式SPARC。(错误# 17740390)
如果MySQL使用
-DWITH_LIBWRAP = 1
.(错误# 17738805)对于调试版本,
filesort
算法可能会提出虚假的断言。(错误# 17734642)的
mysql_get_option
符号丢失了libmysql.dll
.(错误# 17733103)在某些情况下,
UNIX_TIMESTAMP ()
可以返回零
当它应该返回0时。(错误# 17728371)服务器可能在执行
插入……选择
与联盟
,汇总
,重复密钥更新
使用子查询。(错误# 17727506)参考资料:这个问题是:Bug #16967281的回归。
只有在成功检索所有行之后,才释放用于索引合并访问方法的缓存。操作中断或失败导致文件描述符泄漏。(错误# 17708621)
优化器不正确地计算了连接缓冲区扫描的成本,计算了由附加条件过滤掉的行,而不是一次,而是每个连接缓冲区一次。(错误# 17694707)
使用, mysqldump
——set-gtid-purged
没有值的选项, mysqldump崩溃。(错误# 17650245)如果
SAFE_MUTEX
已启用(仅对调试版本为真),THR_LOCK_mutex
在初始化之前使用。(Bug #17641055, Bug #70639)性能架构语句事件线程之间的竞争条件导致服务器退出。(错误# 17637970)
范围优化器模块中不正确的引用计数可能导致查询结果集中的行丢失或重复。(错误# 17619119)
对于调试构建,子查询连接条件中的聚合函数可能引发断言。(错误# 17602807)
修复Bug #16409270后,就不可能了
# include < mysql.h >
后# include < windows.h >
.(错误# 17514554)参考文献:参见Bug #16409270。
访问连接缓冲区时的寻址错误可能会产生无效的结果或服务器退出。(错误# 17513341)
解析器允许使用多个查询
命令
子句,该子句在执行过程中失败并导致服务器退出。(错误# 17473479)对于调试构建,服务器可以退出插入到的语句
团
声明为非空
类检索的子查询团
列和包含组为null
.(错误# 17458917)在一个
情况下
表达式的子查询引用值()
函数可能导致服务器退出。(错误# 17458914)这个问题是Bug #14789787的回归。
设置密码
结合子查询结果中的变量赋值可以引发断言。(错误# 17458750)拆卸后清理不充分
SELECT_LEX
结构导致了NULL指针的解引用和服务器退出。(错误# 17458169)解析器静默地接受副本
命令
条款和/或限制
条款前命令
子查询中的子句。这将导致查询执行期间出现故障。修复这个问题会导致解析器行为发生一些变化。解析器不再接受:一个
限制
条款前命令
条款一个
限制
在无括号的从句中选择
语句之前的联盟
关键字一个
成
后面的从句过程分析()
条款
(Bug #17426017, Bug #17703542, Bug #17727401)
在Windows上,mysql_secure_installation退出,如果
根
密码已过期。(错误# 17415203)mysql_config错误地包含了一些生成编译器警告输出的标志。(错误# 17400967)
在启用半连接优化的情况下,带有嵌套子查询的查询可能会由于对中间查询块中的列的引用解析不正确而导致服务器退出。(错误# 17398972)
如果由于内存不足错误而接受连接尝试失败,服务器可能访问先前断开连接的过时线程结构,从而导致Valgrind错误。(错误# 17398792)
SHA256密码认证算法分配的缓冲区短了一个字节。处理步骤(错误# 17397073)
为
情况下
涉及浮点数的表达式max_length
而且小数
数值可能计算错误。的逻辑情况下
被修正为与for相同合并()
,执行类似的操作。(错误# 17388045)发生客户端崩溃,如果
mysql_set_server_option ()
或其他几个C API函数之前被调用过mysql_real_connect ()
.(错误# 17338958)在某些情况下,优化器编写固定长度的临时文件
MyISAM
表到磁盘,而不是可变长度的临时表。(错误# 17231940)使
validate_password
插件可能导致错误的密码哈希存储在mysql.user
表格(错误# 17065383)对于调试构建,使用半连接处理的准备语句的第二次执行可能导致服务器退出。(错误# 16988465)
对于使用半连接LooseScan优化处理的查询,会引发一个虚假断言,该查询要求按顺序返回行。(错误# 16977389)
循环依赖问题涉及
sql / sql_builtin.cc
是解决。(错误# 16877045)认证的帐户
sha256_password
插件,在密码过期后设置密码没有清除密码过期标志。(错误# 16872181)在服务器关闭期间,在调用之前释放文件信息
query_logger.cleanup ()
,导致内存泄漏。(错误# 16859266)为准备
插入…选择
语句、不存在的列名不会在语句准备期间报告,而只在稍后的语句执行时报告。(错误# 16820562)在某些条件下,多表更新更新失败。(错误# 16767011)
使用未初始化内存的临时表的崩溃恢复。(错误# 16754540)
在OS X 10.7上,一个竞态条件涉及
vio_shutdown ()
和基于选择的实现vio_io_wait ()
可能导致服务器退出。(Bug #16354789, Bug #17733393)在源代码中使用的示例url中的主机名被example.com域中的名称所替换,这个域是IANA为此目的打算使用的。(错误# 15890092)
为
use utf8
而且utf8mb4
字符串,处理函数不必要地称为Unicode转换函数。(错误# 14057034)类指定的客户端插件的预加载
LIBMYSQL_PLUGINS
除非插件位于硬连接的默认插件目录中,否则环境变量可能会失败。C API现在在插件预加载时检查LIBMYSQL_PLUGIN_DIR
环境变量,可以设置为查找客户端插件的目录的路径名。(Bug #13994567, Bug #18110355)某些
(…零……)在(…)
表达式返回零
当它们应该返回0时,例如Select (null, 1) in ((0,0), (0,0))
.(错误# 13944462)几个
- w
如果配置了MySQL,则在维护模式下编译时关闭警告标志-DWITH_INNODB_MEMCACHED = 1
.(错误# 13898319)优化器在某些情况下为动态范围访问设置,在这些情况下不能使用范围访问,从而导致回退到表扫描。(错误# 13814468)
执行mysqladmin关闭如果服务器运行时启用了线程池插件,并且服务于大量并发连接,会导致服务器异常退出。(错误# 13788920)
调用
ExtractValue ()
函数带有无效XPath表达式,在某些情况下可能会导致服务器故障。(Bug #12428404, Bug #61065)使用非多字节算法跳过多字节字符串中的前导空格可能导致服务器退出。(Bug #12368495, Bug #18315770)
与
ONLY_FULL_GROUP_BY
启用SQL模式,查询使用集团
中的子查询派生的列上从
子句失败时列不在GROUP BY中
错误,如果查询在视图中。(错误# 11923239)mysqlbinlog相关的内存泄漏
——rewrite-db
处理。(Bug #71283, Bug #18027692)此前,为
解释
输出时,性能模式表的行检查估计值总是显示为1000。现在,根据为每个表分配内存时使用的大小调整参数,显示更准确的估计。这不会导致行为的改变,因为Performance Schema表没有索引。(Bug #71278, Bug #18024455)范围优化器的优化器跟踪输出可以包括原始二进制数据并生成不可打印的字符。现在二进制数据以十六进制格式打印。(Bug #71273, Bug #18023222)
在配置中,CMakec++头文件检查不当
cxxabi.h
.(Bug #71268, Bug #18147458)控件中子查询的结果聚合
从
子句可能产生不正确的结果。(Bug #71244, Bug #18014565)以前,在一条语句中执行的第一个阶段是
阶段/ sql / init
.它和另一个舞台相撞了初始化
并且与开始
阶段显示配置文件
.在语句中执行的第一个阶段现在被命名阶段/ sql /开始
.相应地,在显示PROCESSLIST
输出,以前显示的一些行状态
的价值初始化
现在显示开始
.(Bug #71201, Bug #17993294)CMake产生了一个警告
ssl.cmake
由于语法错误。(Bug #71094, Bug #17905144)CMake产生了无用的警告
INTERFACE_LINK_LIBRARIES
政策。(Bug #71089, Bug #17905155, Bug #17894997), mysqldump——单独的事务为每个转储表获取元数据锁,但直到转储操作结束才释放它们。因此,即使在转储表本身之后,转储表上的其他DDL操作也会阻塞。, mysqldump现在尝试提前释放元数据锁。(Bug #71017, Bug #17862905)
sql_resolver.cc
类应当保护的分区代码# ifdef
,即使配置了MySQL-DWITH_PARTITION_STORAGE_ENGINE =了
.(Bug #71010, Bug #17876794)的
等待/同步/互斥锁/ sql / MYSQL_RELAY_LOG:: LOCK_sync
互斥锁没有被正确地用于性能模式。(Bug #70939, Bug #17813333)的
-DWITH_EXAMPLE_STORAGE_ENGINE = 1
CMake选项被忽略了,但不应该被忽略。如果-DWITH_EXAMPLE_STORAGE_ENGINE = 0
给定,则例子
存储引擎是作为插件构建的。(Bug #70859, Bug #17772560, Bug #30133062)参考文献:参见Bug #18324650。
冲洗状态
清除一个变量,该变量可能导致XA事务的后续隐式提交,从而导致服务器退出。(Bug #70854, Bug #17911445)在关键路段的开销减少了
my_fopen ()
而且my_register_filename ()
mysys
功能。感谢Po-Chun Chang的补丁。(错误# 70848)Coverity静态分析工具识别的几个问题得到了修复。感谢Honza Horak的补丁。(Bug #70830, Bug #17760511)
创建临时表以查找不同值并在投影列表中具有常量值的查询可能会产生不正确的结果。(Bug #70657, Bug #17634335)
配置与
-DWITH_DEBUG = 1
没有与配置相同的效果-DCMAKE_BUILD_TYPE =调试
.(Bug #70647, Bug #17632854)性能模式工具API的原型
mysql_cond_timedwait ()
调用已被固定为插入兼容pthread_cond_timedwait ()
.此修复只影响第三方插件的实现者。(Bug #70628, Bug #17702677)一些
之间的
无符号值的表达式用有符号算术求值。感谢林晓斌的补丁。(Bug #70622, Bug #17606942)的查询可能返回不正确的结果
如果()
谓词中的在哪里
条款与外连接
在转换为半连接的子查询中。(一种解决方法是使用禁用半连接设置optimizer_switch = ' semijoin = off”;
(Bug #70608, Bug #17600176)服务器写入的数量过多”这种流产”发送到错误日志的消息。(Bug #70173, Bug #17372396)
当经过
根
,Mysqld——帮助——啰嗦在显示帮助消息后退出并显示非零错误代码。(Bug #70058, Bug #17324415)涉及连接或子查询的Performance Schema表的复杂更新未能更新每一行。(Bug #70025, Bug #17309657)
对于调试构建,json格式
解释
涉及半连接实体化的查询语句可能导致服务器退出。(Bug #70014, Bug #17305943)子查询执行期间发生的死锁错误可能导致引发断言。(Bug #69969, Bug #17307201)
对于现有用户,
格兰特
如果密码为空(由[密码]识别"
)没有更改密码。(Bug #69899, Bug #17256161)在配置期间,谷歌模拟库的下载可能会失败。这是通过要求来解决的CMake2.8.2或更高。(Bug #69854, Bug #17231722)
目录中的一些文件
file_instances
没有删除性能模式表,因为没有检测文件删除操作。(Bug #69782, Bug #17209750)方法指定的路径
——basedir
选项,mysql_plugin试图断开该路径的链接,而不是释放存储该路径的内存。(Bug #69752, Bug #17168602)没有分隔符且超过14位的时态字面值字符串被验证为
时间/日期时间
值,其精度为两位数的小数秒部分。但是小数秒应该始终用小数点与时间的其他部分隔开。(Bug #69714, Bug #17080703)对于接受字符串值的系统变量,
集
语句允许不加引号的值,但是包含点的值解析错误,只分配了部分值。例如,设置全局slow_query_log_file = my_slow.log
赋值my_slow
.现在这些值必须加引号,否则会出现错误。(Bug #69703, Bug #17075846)控件无法查询视图
命令
类中引用别名的子句选择
子句,除非视图中的所有列都在选择列表中命名。为了处理这个问题,服务器现在将一个视图以不同的方式写入
.frm
存储视图定义的文件。如果遇到刚才描述的视图计算错误,请删除并重新创建视图,以便.frm
文件包含更新后的视图表示。(Bug #69678, Bug #17077305)的mysqladmin,mysqlbinlog,mysqlcheck,, mysqldump,mysqlimport,mysqlslap,mysqlshow程序现在支持
——secure-auth
选项,防止以旧(4.1以前的)格式向服务器发送密码。默认情况下该选项是启用的;使用——skip-secure-auth
禁用它。(Bug #69051, Bug #16723046)为
utf8_bin
排序,按下(
可能产生错误的顺序。(Bug #69005, Bug #16691598)col_name
)来自社区版发行版的MySQL客户端程序不能使用SSL连接到来自企业版的MySQL服务器。这是由于yaSSL和OpenSSL(分别用于社区和企业)在证书处理方面的差异。OpenSSL期望发送一个空白证书,而不是所有的
——ssl-ca
,——ssl-cert
,——ssl密钥
选项被指定,而yaSSL没有这样做。为了解决这个问题,yaSSL被修改为在缺少选项时发送一个空白证书。(Bug #68788, Bug #16715064)结合派生表(中的子查询)的全文搜索
从
子句)导致服务器退出。现在,如果全文操作依赖于派生表,服务器就会产生一个错误,指出不能在物化表上进行全文搜索。(Bug #68751, Bug #16539903)
COUNT(DISTINCT)有时会在最后一个读行包含
零
价值。(Bug #68749, Bug #16539979, Bug #71028, Bug #17867117)一些脚本显示了关于在哪里报告错误的过时信息。(Bug #68742, Bug #16530527)
更新一个
联邦
表更新……加入
中包含单行且该行可以连接到中的某行时,导致服务器退出联邦
表格(Bug #68354, Bug #16324629)服务器为LDML排序规则定义问题而写入错误日志的消息缺少排序规则名称。(Bug #68144, Bug #16204175)
mysqlcheck没有正确处理包含点的表名。(Bug #68015, Bug #16064833)
所报告的错误修复了编译问题铿锵声而且海湾合作委员会当在c++ 11模式下编译时。(Bug #66803, Bug #14631159)
cmake / configure.pl列举的实例
WITH_COMMENT
而不是正确的选择COMPILATION_COMMENT
.(Bug #65834, Bug #14298560)的
make_atomic_cas_body64
在IA32上实现海湾合作委员会但是没有海湾合作委员会由于不正确的约束,内建程序可能被错误编译。该补丁还会导致MySQL在编译时使用内置原子铿锵声.(Bug #63451, Bug #17242996)在OS X上
libmysqlclient
Dylib文件链接到自己。(Bug #61699, Bug #13890998, Bug #61243, Bug #12590037)优化器可以进行选择
裁判
访问结束eq_ref
访问时,非惟一访问的成本在惟一索引的成本之前进行评估。(Bug #54808, Bug #11762236)在Windows上,mysql_install_db.pl只能在
箱子
目录下的。(Bug #42421, Bug #11751526)gcov打印了没有文件名的警告。(Bug #33269, Bug #11747622)
mysql_install_db
指的是过时的mysqlbug报告问题的脚本。现在指的是http://bugs.10bet靠谱mysql.com/代替。(Bug #29716, Bug #11746921)