有关升级、降级、平台支持等的一般信息,请访问https://dev.10bet靠谱mysql.com/doc/relnotes/mysql/8.0/en/.
这是一个里程碑版本,使用风险自负。不支持里程碑版本之间(或从里程碑版本到GA版本)的升级。重要的开发更改发生在里程碑版本中,您可能会遇到兼容性问题,例如除了通常的运行过程外还需要注意的数据格式更改mysql_upgrade.例如,您可能发现有必要将数据转储到, mysqldump在升级之前重新加载它。(在任何情况下,升级前进行备份都是一种谨慎的预防措施。)
创建用户
现在允许默认角色
子句用于指定帐户默认角色。显示创建用户
现在,如果没有默认设置,则显示帐户默认角色没有一个
.(Bug #24670738, Bug #82987)MySQL现在维护有关密码历史的信息,这使得允许对重用以前的密码进行限制成为可能。在一定次数的密码更改或一段时间内,dba可以要求不从以前的密码中选择新密码。方法可以全局地建立密码重用策略
password_history
而且password_reuse_interval
系统变量,以及在每个帐户的基础上使用创建用户
而且改变用户
语句。加上现有的密码过期功能(要求定期更改密码),新的重用限制功能为dba提供了对密码管理更完整的控制。有关更多信息,请参见密码管理.重要的的结构进行更改,才能实现密码重用限制
mysql.user
系统表和一个新的mysql.password_history
系统表。如果您从较早的版本升级到这个MySQL版本,您必须运行mysql_upgrade(并重新启动服务器)以合并这些系统数据库更改。在这之前无法更改密码。
MySQL现在支持原子数据定义语句(原子DDL).原子DDL语句将数据字典更新、存储引擎操作和与DDL操作相关联的二进制日志写入到一个独立的、崩溃安全的事务中,该事务可以完全提交或回滚。
表和非表DDL语句都受支持。与表相关的DDL操作需要存储引擎支持,而非表DDL操作不需要。目前,
InnoDB
存储引擎支持原子DDL。支持的表DDL语句包括
创建
,改变
,下降
用于数据库、表空间、表和索引的语句截断表
声明。支持的非表DDL语句包括:
对于表相关的DDL操作,
InnoDB
将DDL日志写入mysql.innodb_ddl_log
数据字典表。使innodb_print_ddl_logs
配置选项将DDL恢复日志打印到stderr
.原子DDL特性改变了一些语句的行为:
删除视图
如果命名视图不存在,且不做任何更改,则失败并报错。在此之前,该语句返回一个错误,指示哪些视图不存在,但也删除了存在的视图。删除表
如果命名表不存在,且不做任何更改,则失败并报错。在此之前,该语句返回一个错误,指示哪些表不存在,但也删除了存在的表。删除表
是完全原子的,如果所有命名表都使用原子的ddl支持的存储引擎。删除数据库
是原子的,如果所有表都使用原子的ddl支持的存储引擎。但是,从文件系统中删除数据库目录发生在最后,并且不是原子事务的一部分。如果由于文件系统错误或服务器停止而导致数据库目录删除失败,则删除数据库
事务没有回滚。对使用原子DDL支持的存储引擎的表的中断DDL操作不再在存储引擎、数据字典和二进制日志之间引入差异,或留下孤儿文件。
不再允许部分执行帐户管理报表。帐户管理语句对于所有指定的用户都是成功的,或者是回滚,如果发生错误则不生效。
更改
删除表
,删除视图
,帐户管理语句行为对跨版本复制配置有影响。有关更多信息,请参见原子数据定义语句支持.(错误# 24620918)
MySQL C API现在允许客户端指定结果集的元数据传输是可选的。抑制元数据传输可以提高性能,特别是对于执行许多查询但每次返回的行数很少的会话。有关更多信息,请参见可选结果集元数据.
MySQL现在支持俄文排序
utf8mb4
Unicode字符集:utf8mb4_ru_0900_ai_ci
不区分重音和大小写。utf8mb4_ru_0900_as_cs
区分重音和大小写。
对于调试版本,
SAFE_MUTEX
编译标志被禁用memcached
插件包含在构建中。这种情况不再发生;SAFE_MUTEX
始终为调试版本启用。由于此更改而发现的一些代码问题已得到纠正。(Bug #26442367, Bug #87068)EL6和EL7上的二进制包现在使用Devtoolset 6而不是Devtoolset3编译,使用GCC 6.2.1而不是4.9.2编译。(Bug #26436968, Bug #87061)
MySQL现在为Oracle Linux上的SPARC编译。(Bug #26306331, Bug #86745)
在macOS上使用Clang编译MySQL现在需要一个不同于8.0的Clang版本,该版本在某些内联构造方面存在问题。(Bug #26279510, Bug #86711)
清理源代码库的工作已经完成,包括:删除不需要的CMake检查;从源文件中删除未使用的宏;重新组织头文件以减少依赖的数量并使它们更加模块化,删除没有定义的函数声明,用行业标准库中的等价函数替换本地编写的函数。
的
performance_schema_max_mutex_classes
系统变量默认值从220增加到250。的performance_schema_max_thread_classes
系统变量默认值从50增加到100。(错误# 26193630)新
cte_max_recursion_depth
系统变量实现了公共表表达式(CTE)的最大递归深度。服务器终止任何递归级别超过此变量值的CTE的执行。有关更多信息,请参见限制公共表表达式递归.(Bug #26136509, Bug #86444)的
back_log
系统变量的默认值是现在的值max_connections
,这使允许的backlog可以调整到允许的最大连接数。若要默认启用事件调度器,则
event_scheduler
更改系统变量默认值从
来在
.的
max_allowed_packet
系统变量默认值从4194304 (4M)增加到67108864 (64M)。的
max_error_count
系统变量默认变量从64增加到1024。
这些
INFORMATION_SCHEMA
表被重新实现为数据字典表的视图:文件分区REFERENTIAL_CONSTRAINTS
对这些表的查询现在效率更高,因为它们从数据字典表获得信息,而不是通过其他较慢的方法。例如,服务器不再必须为的每个查询创建临时表
INFORMATION_SCHEMA
表格如果您从较早的版本升级到这个MySQL版本,您必须运行mysql_upgrade(并重新启动服务器)来合并这些更改。
复制:的已弃用的全局作用域
sql_log_bin
系统变量已被删除。sql_log_bin
现在只有会话作用域。依赖访问的应用程序@@GLOBAL.sql_log_bin
应该调整。这些与加密相关的已弃用项目已被删除:
的
加密()
函数。的
DES_ENCRYPT ()
,DES_DECRYPT ()
功能,——des-key-file
选项时,have_crypt
系统变量,DES_KEY_FILE
选择冲洗
声明,HAVE_CRYPT
CMake选择。
替换已删除的加密功能:For
加密()
,可以考虑使用SHA2 ()
而不是单向哈希。对于其他的,考虑使用AES_ENCRYPT ()
而且AES_DECRYPT ()
代替。(错误# 26493987)弃用的
tx_isolation
而且tx_read_only
已删除系统变量。使用transaction_isolation
而且transaction_read_only
代替。已删除已弃用的查询缓存。移除包括以下项目:
的
刷新查询缓存
而且重置查询缓存
语句。这些系统变量:
query_cache_limit
,query_cache_min_res_unit
,query_cache_size
,query_cache_type
,query_cache_wlock_invalidate
.这些状态变量:
Qcache_free_blocks
,Qcache_free_memory
,Qcache_hits
,Qcache_inserts
,Qcache_lowmem_prunes
,Qcache_not_cached
,Qcache_queries_in_cache
,Qcache_total_blocks
.这些线程状态:
检查缓存查询的权限
,检查查询缓存
,使查询缓存项无效
,发送缓存的结果到客户端
,将结果存储在查询缓存中
,等待查询缓存锁定
.的
SQL_CACHE
选择
修饰符。
这些已弃用的查询缓存项仍然是弃用的,但没有任何效果,并将在未来的MySQL版本中删除:
的
SQL_NO_CACHE
选择
修饰符。的
ndb_cache_check_time
系统变量。
的
have_query_cache
系统变量已弃用,值总是为没有
,并将在未来的MySQL版本中删除。弃用的
扩展
而且分区
关键字的解释
声明已被删除。这些关键字是不必要的,因为它们的效果总是启用的。未使用的
date_format
,datetime_format
,time_format
,max_tmp_tables
已删除系统变量。弃用的
multi_range_count
系统变量已被删除。弃用的
log_warnings
系统变量和——log-warnings
服务器选项已被删除。使用log_error_verbosity
系统变量。弃用的
secure_auth
系统变量和——secure-auth
客户端选项已被删除。的MYSQL_SECURE_AUTH
选择mysql_options ()
C API函数被删除。弃用的
ignore_builtin_innodb
系统变量已被删除。
现在在服务器启动时默认启用二进制日志。的
log_bin
系统变量默认设置为ON,而不是OFF,即使——log-bin
选项未指定。二进制日志记录是生产安装的标准实践,因此在默认情况下启用它可以省去通常需要的配置和规划步骤。要禁用二进制日志记录,可以指定
——skip-log-bin
或——disable-log-bin
在启动时选项。的
server_id
系统变量现在默认设置为1,而不是0。对于复制拓扑中的服务器,您仍然必须更改此设置,以为每个复制服务器指定惟一的服务器ID。以前,服务器无法启动log_bin =对
如果没有指定服务器ID。现在,服务器可以启动了,但是如果没有设置显式的服务器ID,则会发出警告消息。(从MySQL 8.0.4,该消息只是信息。)在为服务器启用二进制日志记录后,所有更改数据的语句都会被记录到服务器的二进制日志中,这是一个具有基本名称和数字扩展名的文件序列。默认情况下,服务器在data目录中创建二进制日志文件和索引文件。在MySQL 8.0.3中,这些文件的默认基名是
,使用主机的名称。从MySQL 8.0.4开始,默认的基名是host_name
本binlog
如果您不提供——log-bin
选择,
如果您提供的选项没有字符串或空字符串。host_name
本属性,可以选择二进制日志文件和索引文件的名称和位置
——log-bin
而且——log-bin-index
选项。建议显式指定基名,以便在主机名更改时,可以轻松地继续使用相同的二进制日志文件名。的log_bin_basename
系统变量保存二进制日志文件的基本名称和任何指定路径。复制从机上的中继日志和中继日志索引,其名称由
——relay-log
而且——relay-log-index
选项,不能给与二进制日志和二进制日志索引相同的名称。在MySQL 8.0.3中,如果二进制日志和中继日志文件基文件名相同,服务器就会发出错误消息,并且不启动。每次启动或刷新日志时,服务器都会在该系列中创建一个新的二进制日志文件。服务器还会在当前文件的大小达到后自动创建一个新的二进制日志文件
max_binlog_size
,默认为1GB的最大值。在MySQL 8.0.3中,二进制日志文件默认在30天后过期,然后可以在启动时或二进制日志刷新时自动删除。方法手动清除二进制日志文件清洗二进制日志
方法指定不同的二进制日志过期时间binlog_expire_logs_seconds
系统变量。还有许多其他选项可用于修改二进制日志记录的行为。有关更多信息,请参见二进制日志而且二进制日志选项和变量.
参考文献:参见Bug #26730000。
优化器现在支持
SET_VAR
在单个语句的持续时间内设置系统变量的会话值的提示。例子:SELECT /*+ SET_VAR(sort_buffer_size = 16M) */ name FROM peopleINSERT /*+ SET_VAR(foreign_key_checks=OFF) */ INTO t2 VALUES(2);
有关更多信息,请参见优化器提示.(错误# 22906815)
对象中存储的列值直方图统计信息
column_statistics
数据字典表构造查询执行计划。直方图的使用适用于将列与常量进行比较的谓词。看到优化器统计数据.以前,没有办法跳过使用索引跳水来估计索引的有用性,除非使用
eq_range_index_dive_limit
系统变量。现在,对于某些查询条件下的单表查询(参见优化范围).的
optimizer_switch
系统变量有一个名为use_invisible_indexes
控制优化器是否为查询执行计划构造使用不可见索引。如果标志是从
(默认值),优化器会忽略不可见的索引(与引入此标志之前的行为相同)。如果标志是在
,不可见索引保持不可见,但优化器会在构建执行计划时考虑到它们。
mysqlcheck在MySQL Server Docker映像中缺失,这阻止了mysql_upgrade从运行。(Bug #26400146, Bug #86968)
对于Debian,非调试二进制文件从
mysql服务器
包的mysql-server-core
包中。(Bug #26382333, Bug #86899)Debian / Ubuntu
mysql-community-source
包不再生成,因为它包含的MySQL源tarball是由其他包提供的dev.10bet靠谱mysql.com
.(错误# 26201482)与MySQL绑定的zlib库已从1.2.3版本升级到1.2.11版本。MySQL在zlib库的帮助下实现压缩。
zlib
compressBound ()
函数在zlib 1.2.11中返回的压缩给定字节长度所需缓冲区大小的估计值比在zlib 1.2.3中略高。的compressBound ()
函数由InnoDB
确定在创建压缩时允许的最大行大小的函数InnoDB
表或在压缩中插入和更新行InnoDB
表。作为一个结果,创建表……ROW_FORMAT =压缩
,插入
,更新
在早期版本中,行大小非常接近最大行大小的操作现在可能会失败。要避免这个问题,请进行测试创建表
语句压缩InnoDB
在升级之前在MySQL 8.0测试实例上安装一个具有大行的表。
从MySQL 8.0.2开始,性能模式表定义在服务器内部维护。由于这种变化,
创建表
而且删除表
不再适用于性能模式表。(错误# 26136994)的
events_statements_summary_by_digest
表现在为每一行提供了一个示例语句,该语句生成行中的摘要值。应用程序可以使用此信息作为捕获语句样例的更有效的方法,而不是探测
表。后一种方法需要启用相应的xxx
_history_long
对于不需要这些表的应用程序来说,这是额外的开销。有关更多信息,请参见性能模式语句摘要和抽样,声明汇总表.xxx
_history_long此外,
FIRST_SEEN
而且LAST_SEEN
的时间戳列events_statements_summary_by_digest
表现在有小数秒部分。性能模式
setup_instruments
表现在有仪器元数据列:仪器属性、仪器波动率和描述仪器用途的文档字符串。10bet官方网站此外,定时
列现在可以是零
,表示该仪器不支持计时。看到setup_instruments表.新的性能模式
setup_threads
表公开了仪表化的线程类名称和属性。看到setup_threads表.
新
get_sysvar_source
插件服务允许插件检索系统变量设置的源。请注意作为这项工作的一部分,用于引用多个的复合部分结构化变量语法
MyISAM
密钥缓存已弃用。看到多个键缓存.
一个新的
caching_sha2_password
认证插件可用。就像sha256_password
插件,caching_sha2_password
实现SHA-256密码哈希,但使用缓存解决连接时的延迟问题。它还支持更多的连接协议,并且不需要连接到OpenSSL以获得RSA密码交换功能。看到缓存SHA-2可插入认证.因为启动服务器时
——skip-grant-tables
禁用身份验证检查,在这种情况下,服务器也通过启用禁用远程连接skip_networking
.
MySQL现在支持创建和管理资源组,并允许将服务器中运行的线程分配给特定的组,以便根据组中可用的资源执行线程。组属性允许对其资源进行控制,以启用或限制组中的线程使用资源。dba可以根据不同的工作负载适当地修改这些属性。目前,CPU时间是一种可管理的资源,用的概念表示”虚拟CPU”作为一个术语,它包括CPU内核、超线程、硬件线程等等。服务器在启动时确定有多少虚拟cpu可用,具有适当权限的数据库管理员可以将这些cpu与资源组关联,并为组分配线程。有关更多信息,请参见资源组.
不兼容的更改:以前,这些测试几何关系的函数只支持笛卡尔空间参考系统(SRSs):
ST_Contains ()
,ST_Crosses ()
,ST_Disjoint ()
,ST_Equals ()
,ST_Intersects ()
,ST_Overlaps ()
,ST_Touches ()
,ST_Within ()
,MBRContains ()
,MBRCoveredBy ()
,MBRCovers ()
,MBRDisjoint ()
,MBREquals ()
,MBRIntersects ()
,MBROverlaps ()
,MBRTouches ()
,MBRWithin ()
.这些函数现在检测地理SRS中的几何参数并返回地理结果。预测SRSs和SRID 0的计算保持不变。有关更多信息,请参见使用对象形状的空间关系函数,使用最小边界矩形的空间关系函数.
请注意如果空间数据包含引用地理空间参考系统的SRID值,与以前的MySQL版本相比,使用这些函数的现有查询将返回不同的结果。
InnoDB:的空间参考标识符(SRID)支持
InnoDB
空间索引。空间数据类型现在允许
SRID
属性,显式指示存储在列中的值的空间参考系统(SRS)。看到空间数据类型.表示每一列的
SRID
属性值,如果有,则INFORMATION_SCHEMA。列
表现在有一个SRS_ID
列。具有显式的空间列
SRID
属性是SRID-restricted:列只接受带有该ID的值,并且空间
列上的索引将由优化器使用。优化器会忽略空间
号空间列上的索引SRID
属性。看到空间索引的优化.
ALTER TABLE
现在支持使用更容易的列重命名重命名列
语法。看到ALTER TABLE语句.对于更改列名而不更改其定义,old_name
来new_name
重命名列
比改变
,这需要重新指定当前列定义。与改变
,如果你不知道它的定义,你必须查找它,如果你不准确地重新指定它,有可能数据更改或丢失。(Bug #11746522, Bug #26949, Bug #11747473, Bug #32497, Bug #11765084, Bug #58006, Bug #14031617)
文件启动服务器时,无法安装X Plugin
——skip-grant-tables
选择。(错误# 26516678)X插件套接字连接没有正常工作。(Bug #26427112, Bug #87019)
从源代码编译MySQL时,某些不常使用CMake参数导致了X Plugin构建的问题。(错误# 26141933)
一个
Mysqlx.Connection.CapabilitiesGet
使用X协议的请求没有返回可用身份验证机制的完整列表。(错误# 26044113)对于混合大小写或大写模式名,语句
list_objects
可能错误地将集合报告为表。(错误# 25769683)用于测试数据目录权限的插件列表中省略了X Plugin。(错误# 24823999)
InnoDB:新
innodb_dedicated_server
配置选项,该选项在默认情况下是禁用的,可用于拥有InnoDB
根据服务器上检测到的内存量,自动配置以下选项:该选项适用于在专用服务器上运行的MySQL服务器实例。有关更多信息,请参见启用MySQL专用服务器的自动配置.
InnoDB:现在支持重命名通用表空间
改变表空间……重命名为
语法。InnoDB:与过时相关的代码
InnoDB
系统表被删除。INFORMATION_SCHEMA
的观点的基础上InnoDB
系统表被数据字典表上的内部系统视图所取代。影响InnoDB
INFORMATION_SCHEMA
观点被更名为:表1重命名的InnoDB Information Schema视图。第一列显示旧名称。第二列显示了新名称。
旧的名称 新名字 INNODB_SYS_COLUMNS
INNODB_COLUMNS
INNODB_SYS_DATAFILES
INNODB_DATAFILES
INNODB_SYS_FIELDS
INNODB_FIELDS
INNODB_SYS_FOREIGN
INNODB_FOREIGN
INNODB_SYS_FOREIGN_COLS
INNODB_FOREIGN_COLS
INNODB_SYS_INDEXES
INNODB_INDEXES
INNODB_SYS_TABLES
INNODB_TABLES
INNODB_SYS_TABLESPACES
INNODB_TABLESPACES
INNODB_SYS_TABLESTATS
INNODB_TABLESTATS
INNODB_SYS_VIRTUAL
INNODB_VIRTUAL
升级到MySQL 8.0.3或更高版本后,更新引用前面的任何脚本
InnoDB
INFORMATION_SCHEMA
视图名称。新
INFORMATION_SCHEMA。INNODB_TABLESPACES_BRIEF
视图提供空间、名称、路径、标志和空间类型数据InnoDB
表空间。InnoDB:当
InnoDB
与全局数据字典集成,数据字典中的file-per-table表空间名称以innodb_file_per_table_x
,在那里x
是InnoDB
表空间ID。为了方便使用,数据字典中的每表文件表空间名称再次与表名称相同。从MySQL 5.7升级到MySQL 8.0会附加MySQL 5.7
innodb_table_stats
而且innodb_index_stats
数据字典中的表空间名称”_backup57
”以区别于MySQL 8.0版本。InnoDB:默认的
innodb_autoinc_lock_mode
设置从1(连续)更改为2(交错)。交错锁定模式允许并行执行多行插入,这提高了并发性和可伸缩性。新innodb_autoinc_lock_mode
默认设置反映了MySQL 5.7中的默认复制类型从基于语句的复制变为基于行的复制。基于语句的复制需要连续的自动增量锁定模式,以确保对给定的SQL语句序列以可预测和可重复的顺序分配自动增量值,而基于行的复制对SQL语句的执行顺序不敏感。有关更多信息,请参见InnoDB AUTO_INCREMENT锁模式.对于使用基于语句的复制的系统,新的
innodb_autoinc_lock_mode
默认设置可能会破坏依赖顺序自动递增值的应用程序。要恢复以前的默认设置,请设置innodb_autoinc_lock_mode
为1。InnoDB:序列化字典信息(SDI)现在出现在所有文件中
InnoDB
临时表空间和撤销表空间文件除外的表空间文件。SDI是表和表空间对象的序列化元数据。SDI数据的存在提供了元数据冗余。例如,如果数据字典变得不可用,可以从表空间文件中提取字典对象元数据。方法执行SDI提取ibd2sdi工具。SDI数据存储在JSON
格式。在表空间文件中包含SDI数据会增加表空间文件的大小。一个SDI记录需要一个索引页,默认情况下大小为16KB。但是,SDI数据在存储时进行压缩,以减少存储空间占用。
InnoDB:的
innodb_flush_neighbors
默认值已从1更改为0,这将禁止从缓冲池刷新相邻页。对于寻道时间不是重要因素的非旋转存储(SSD)设备,设置为0是最优的。对于使用HDD的系统,建议恢复默认值“1”。InnoDB:影响缓冲池预冲洗和冲洗行为的配置选项的默认值已被修改:
的
innodb_max_dirty_pages_pct_lwm
默认值修改为10。前面的默认值0禁用缓冲池预刷新。当缓冲池中脏页的百分比超过10%时,值10启用预刷新。启用预冲功能可以提高性能一致性。的
innodb_max_dirty_pages_pct
默认值由75修改为90。InnoDB
尝试从缓冲池刷新数据,以使脏页的百分比不超过此值。增加的默认值允许缓冲池中更大比例的脏页。
InnoDB:最低
innodb_undo_tablespaces
值从0更改为2。在以前的版本中,如果回滚段使用系统表空间innodb_undo_tablespaces
设置为0。最小值为2可以确保回滚段是在undo表空间而不是system表空间中创建的。有关更多信息,请参见撤消表空间.复制;JSON:添加了
binlog_row_value_options
系统变量。目前该变量可以取消设置,也可以设置为该值PARTIAL_JSON
.这导致MySQL的基于行复制对每次更新使用紧凑的二进制日志格式,只修改JSON文档的一小部分,并使用任意组合JSON_SET ()
,JSON_REPLACE ()
,JSON_REMOVE ()
.紧凑格式只包含用于二进制日志中更新的后图像中JSON文档的修改部分,而不是完整的文档。如果修改需要比完整文档更多的空间,或者无法生成部分更新,则使用完整文档代替。参见对变量的描述JSON值的部分更新,以查询更多资料。
复制:的
IGNORE_SERVER_IDS
选择的改变主
语句在使用基于gtid的复制(gtid_mode =对
).对于gtid,已经应用的事务将被自动忽略,因此不需要此函数。在启动基于gtid的复制之前,请检查并清除之前在相关服务器上设置的所有被忽略的服务器ID列表。的
SHOW_SLAVE_STATUS
语句,该语句可以针对单个通道发出,如果存在被忽略的服务器id,则显示该列表。如果没有列表,则Replicate_Ignore_Server_Ids
字段是空白。如果
gtid_mode =对
为服务器设置时,如果包含IGNORE_SERVER_IDS
选择在一个改变主
声明。如果您发出一个设置GTID_MODE =
语句时,任何通道都设置了现有的服务器idIGNORE_SERVER_IDS
.如果您确实收到了弃用警告,您仍然可以在之后清除列表gtid_mode =对
是通过发行改变主
声明中包含IGNORE_SERVER_IDS
选项,该选项带有一个空列表。复制:下面的过时的mysqlbinlog选项现在已弃用,并将在未来的MySQL版本中删除:
——短小精悍
,它可以用于将输出限制为语句单独的测试。——stop-never-slave-server-id
的连接提供一个服务器ID——stop-never
选择。如果需要此函数,请使用——connection-server-id
选项。
这些选项的弃用警告被发送到标准错误,而不是标准输出,以便它们不会干扰使用的输出的工具的操作mysqlbinlog.
复制:的
log_slave_updates
系统变量现在默认设置为ON,因此不需要指定——log-slave-updates
在启动复制从端时显式。的
log_slave_updates
系统变量只读。如果需要防止复制从将其SQL线程执行的更新记录到其自己的二进制日志中,请指定——log-slave-updates =了
从服务器启动时。复制:的
group_replication_communication_debug_options
变量已添加,它使您能够根据Group Replication组件(如GCS、XCOM等)动态过滤掉调试和跟踪消息。复制:组复制线程状态现在显示在性能模式表中。
JSON:的
JSON_MERGE ()
函数被重命名为JSON_MERGE_PRESERVE ()
.该版本还添加了
JSON_MERGE_PATCH ()
功能,是RFC 7396兼容的版本JSON_MERGE_PRESERVE ()
;它的行为与JSON_MERGE_PRESERVE ()
,但有以下两个例外:JSON_MERGE_PATCH ()
移除第一个对象中与第二个对象中的键相匹配的任何成员,前提是与第二个对象中的键相关联的值不是JSON零
.如果第二个对象的成员键与第一个对象的成员相匹配,
JSON_MERGE_PATCH ()
替换第一个对象中的值与第二个对象中的值相匹配,而JSON_MERGE_PRESERVE ()
附加第二个值到第一个值。
这个例子比较合并相同的3个JSON对象的结果,每个对象都有一个匹配的键
“一个”
,具有以下每一个功能:mysql >设置@x = '{“a”:1、“b”:2}’,> @y = "{“a”:3,“c”:4}’,> @z = "{“d”:“一”:5日6}';mysql >选择JSON_MERGE_PATCH (@x、@y @z)作为补丁,——> JSON_MERGE_PRESERVE (@x, @y @z)保存\ G *************************** 1。行 *************************** 补丁:{“b”,“a”:5:2,“c”:4,“d”:6}保护:{“a”:1、3、5,“b”:2,“c”:4,“d”:6}
JSON_MERGE ()
仍然支持作为JSON_MERGE_PRESERVE ()
,但现在已弃用,并将在未来的MySQL版本中删除。看到修改JSON值的函数,以查询更多资料。(Bug #81283, Bug #23255346)
InnoDB
现在使用方差感知事务调度(VATS)在系统高负载时调度事务锁的释放,这有助于减少锁系统等待互斥锁的争用。当锁等待队列中挂起了>= 32个线程时,锁调度使用VATS。有关VATS的更多信息,请参见识别事务延迟的主要差异来源:向更可预测的数据库发展.
感谢黄佳敏的贡献。(Bug #25290971, Bug #84266)
MySQL现在根据需要将元数据锁扩展到由外键约束相关的表。扩展元数据锁可以防止冲突的DML和DDL操作在相关表上并发执行。该特性还支持在修改父表时更新外键元数据。以前,由子表拥有的外键元数据无法安全更新。
如果表显式锁定
锁表
,任何与外键约束相关的表现在都是隐式打开和锁定的。对于外键检查,共享只读锁(锁表读
)在相关表上。对于级联更新,无共享写锁(锁表写
)被取到与操作相关的表上。如果
锁表
对于外键关系中的表是活动的,ALTER TABLE……重命名
不允许在那张桌子上使用。这是一个临时限制,在MySQL 8.0.4中通过Bug #26647340的补丁解除。的
expire_logs_days
system变量,它指定二进制日志过期时间(以天为单位),现在已弃用,并将在未来的MySQL版本中删除。expire_logs_days
没有为定义二进制日志过期时间提供足够的灵活性。binlog_expire_logs_seconds
可用于以秒为单位设置二进制日志过期时间。在MySQL 8.0.3中,这两个变量的影响目前是累积的。例如,如果expire_logs_days
是1,binlog_expire_logs_seconds
为43200,则每1.5天清除一次二进制日志。这将产生与设置相同的结果binlog_expire_logs_seconds
到129600年,expire_logs_days
为0。注意,默认的expire_logs_days
当前将30天设置添加到二进制日志过期时间中,如果expire_logs_days
没有指定。使用binlog_expire_logs_seconds
独自一人,expire_logs_days = 0
明确。要禁用二进制日志的自动清除,必须同时设置两者
expire_logs_days
而且binlog_expire_logs_seconds
显式地为0。参考文献:参见Bug #26483363。
一种新的备份锁类型允许在在线备份期间使用DML,同时防止可能导致快照不一致的操作。支持新的备份锁
为备份锁定实例
而且打开实例
语法。的BACKUP_ADMIN
使用这些语句需要特权。在MySQL 8.0.2中,slave状态日志的系统变量,
master_info_repository
而且relay_log_info_repository
,被设定为表格
而不是文件
默认情况下。在MySQL 8.0.3中,文件
已弃用这两个系统变量的设置,如果使用该设置,则会发出警告。的文件
设置将在未来的MySQL版本中删除。的
表格
设置确保复制库信息存储在InnoDB表中,而不是数据目录下的文件中。表的使用使复制对意外停止具有弹性。存储为文件时,从属状态日志的默认名称为
master.info
而且relay-log.info
.方法可以更改名称——master-info-file
而且——relay-log-info-file
选项,分别。和InnoDB表一样,slave状态日志被命名mysql.slave_master_info
而且mysql.slave_relay_log_info
.修改正在使用
文件
要使用的从状态日志的存储库表格
通过运行以下命令,动态转换现有的复制存储库:停止奴隶;SET GLOBAL master_info_repository = 'TABLE';SET GLOBAL relay_log_info_repository = 'TABLE';
主信息日志表
mysql.slave_master_info
应该受到保护,因为它包含连接到主服务器的密码。在备份复制从端数据时,请确保已备份mysql.slave_master_info
而且mysql.slave_relay_log_info
包含slave状态日志的表,因为在从slave恢复数据后,需要这些表来恢复复制。
不兼容的更改;JSON:如果一个JSON对象包含多个具有相同键名的成员,MySQL将保留第一个成员并丢弃其余成员。这与RFC 7159相矛盾,RFC 7159认为重复的键名可以用下面列出的方法之一来处理:
报告错误(或无法解析对象)
报告所有名称-值对,包括重复项
只报告最后一个名称-值对
当用JavaScript计算JSON文本时,如果指定了多个具有相同名称的对,则保留最后一个名称-值对。MySQL现在也这样做了,并实现了刚才列出的三个选项中的最后一个,如下所示:
CREATE TABLE t1 (c1 JSON);mysql >插入t1值(“{“x”:17,“x”:“红色”,“x”:[3、5、7]}”);SELECT c1 FROM t1;+------------------+ | c1 | +------------------+ | {" x”:[3、5、7 ]} | +------------------+
这个问题的修复还纠正了MySQL 8.0服务器在处理将数据插入到包含JSON数组作为多个相同键值的JSON列中的失败。(Bug #86620, Bug #86866, Bug #26238736, Bug #26369555)
性能;JSON:创建JSON字符串的表示现在针对最常见的情况进行了优化——要处理的字符串不包含需要转义的特殊字符——扫描字符串中的第一个特殊字符,并复制不需要单独转义的每个字符序列
memcpy ()
调用,而不是依次检查每个字符以确定它是否需要转义,如果需要则转义,然后逐个复制它,就像前面所做的那样。此修复程序还纠正了未能转义控制字符的错误
\ u001f
,或单位分隔符。(Bug #86898, Bug #26388690, Bug #87722, Bug #26780307)参考文献:参见Bug #25977595。
InnoDB:的默认值。
在更新
而且在删除
外键子句更改为限制
来不采取行动
.不采取行动
是一个标准的SQL关键字,相当于限制
关键字在MySQL中。(Bug #30186407, Bug #96466)InnoDB:的外键记录丢失
INFORMATION_SCHEMA。INNODB_SYS_FOREIGN
表由于内部父表和子表名称的文件名编码,导致名称超过允许的长度。(错误# 27020089)InnoDB:执行时发生了长时间的信号量等待
ALTER TABLE
,删除表
,删除数据库
操作。(错误# 26779650)InnoDB:从与表空间导入相关的函数中删除了无效的错误处理代码。(错误# 26595476)
InnoDB:在升级到MySQL 8.0.2时,在MySQL 5.6之前创建的每表文件表空间导致了失败。的表空间没有注册
InnoDB
SYS_TABLESPACES
系统表,根据需要。在升级到MySQL 8.0.2时,由于精度类型不匹配,在MySQL 5.5之前创建的具有十进制列的表也会导致失败。(Bug #26542296, Bug #87229)
InnoDB:在MySQL安装过程中,报告了一个不必要的关于创建外键约束系统表的警告。(错误# 26483335)
InnoDB:查询在并发时被中断
ALTER TABLE
由于次级索引条目计数不匹配而产生的操作。(错误# 26381213)InnoDB:试图打开在禁用严格模式以包含冲突时被更改的表时发生分割错误
表空间
而且压缩
属性。(错误# 26375851)InnoDB:在使用TempTable存储引擎的DML操作期间发生分割错误。(错误# 26363837)
InnoDB:过程中的隐式行格式转换
ALTER TABLE……重组分区
操作引发无效断言。(错误# 26326611)InnoDB:一个
ALTER TABLE
重新构建加密表的操作没有正确设置加密属性。(错误# 26243264)InnoDB:方法时在Windows上遇到内存泄漏
易被诱惑的
用于内存内部临时表的存储引擎。(错误# 26237680)InnoDB:在未启用Valgrind测试的服务器构建上运行Valgrind测试时,会产生误导性错误。(错误# 26037206)
InnoDB:与删除孤立全文搜索表相关的问题代码在启动时导致无效的对象ID断言失败。(错误# 25998362)
InnoDB:DML操作期间对丢弃分区的检查只检查第一个分区。检查其他丢弃分区失败导致断言失败。(错误# 25942592)
InnoDB:分配的内存在写入文件之前没有初始化,导致Valgrind错误。(Bug #25913151, Bug #85986)
InnoDB:在同一条语句中添加虚拟列和索引会导致错误。(错误# 25899959)
InnoDB:在对具有多个分区的表进行大型更新操作时,从实例会出现复制延迟。(Bug #25687813, Bug #85352)
InnoDB:在结束范围比较期间发生故障。(错误# 25669686)
InnoDB:使
innodb_buffer_pool_load_now
只读模式设置失败。指示缓冲池加载线程未初始化的事件。(错误# 25586766)InnoDB:多版本并发控制行搜索函数的游标位置检查提出了断言。(错误# 25377592)
InnoDB:对象传递了错误的变量
row_mysql_handle_errors
例程导致断言失败。(错误# 25183130)InnoDB:对全文搜索同步操作持有的字典操作锁的长时间等待导致服务器退出。(Bug #24938374, Bug #26376681, Bug #26376239)
InnoDB:对断言代码进行了修改,以考虑到这样一种可能性:一个事务试图获取记录上的显式锁,而另一个事务在提交操作之前将同一记录上的隐式锁转换为显式锁。(错误# 24344131)
InnoDB:一个
刷新表……用于出口
对加密表或页压缩表的操作引发断言。(错误# 22916982)InnoDB:一个
删除表
操作是不允许的innodb_force_recovery
设置大于0。(错误# 22392152)InnoDB:一个
创建表……选择
操作在提交事务之前删除新创建的表时引发断言失败。(错误# 22154768)InnoDB:一个合适的
ALTER TABLE
由于约束名称重复,重新构建表并添加外键而未指定外键约束名称的操作失败。InnoDB
没有考虑到现有的外键约束名称。这个问题在MySQL 8.0.3中得到了解决,当外键元数据被移动到数据字典,外键约束名称生成被移动到SQL层。(Bug #18199504, Bug #71616)InnoDB:对象的错误的函数调用
InnoDB
已删除外键检查期间的数据字典。(Bug #12917178, Bug #62221)InnoDB:当试图使用现有外键约束名称时,报告的错误消息不一致,并且总是没有提供足够的信息。(Bug #11925430, Bug #60633)
分区:在某些情况下,当获取堆记录时,分区ID可以设置为零。(Bug #86255, Bug #26034430)
分区:这是有可能的
创建表
语句创建分区失败InnoDB
表未能正确回滚。这是由于在执行外键信息检查时进行了无关的提交。由于分区表目前不支持外键,因此没有必要进行这种检查,因此在这种情况下不再进行检查。(Bug #85299, Bug #25667278)分区:查询涉及
零
在由?分区的表上并不总是正确处理列表
.(Bug #76418, Bug #20748521)参考文献:参见Bug #86255, Bug #26034430。
复制:在多线程从机上,由于中继日志使用的磁盘空间记录的更新时间,可能会出现死锁状态。更新的时间现在已经更改,因此不会发生死锁。(错误# 26729635)
复制:与
slave_preserve_commit_order = 1
设置后,在持有表上的共享写锁的事务和提交顺序中较早的同样需要共享写锁的事务之间可能会发生死锁。(错误# 26666609)复制:Group Replication流控制变量现在允许您正确地在组中拥有一些不影响流控制机制的最小吞吐量的成员,从而在这些成员阻塞的情况下有效地忽略它们。(错误# 26537497)
复制:未使用的变量
opt_reckless_slave
被删除。(错误# 26500285)复制:当组复制插件
Delayed_initialization_thread
由于资源不可用,启动失败,一个锁定的互斥锁被保留在后面,这将导致在Delayed_initialization_thread
析构函数。该修复确保当线程启动失败时互斥锁被解锁。(错误# 26394678)复制:在以单主模式部署的Group Replication插件的延迟初始化的情况下,从服务器能够通过异步复制区域通道进行写操作,这在Group Replication插件的正常初始化中是不允许的。(错误# 26314756)
复制:如果选项文件包含Group Replication相关设置,则服务器可能在启动时意外停止。(错误# 26314472)
复制:
刷新日志
在提交阶段已经发送了错误响应后,试图发送OK消息。感谢Laurynas Biveinis的补丁。(Bug #26272158, Bug #25363745, Bug #84437)复制:在为事件日志事件生成gtid的情况下,MySQL错误码1590 (ER_SLAVE_INCIDENT)不能使用
——slave-skip-errors = 1590
复制从机上的启动选项。(错误# 26266758)复制:
COUNT_TRANSACTIONS_REMOTE_IN_APPLIER_QUEUE
何时设置为不正确的值group_replication_recovery_complete_at = " transactions_certified "
在一个康复的成员身上。(错误# 26180350)复制:的值
group_replication_recovery_use_ssl
而且group_replication_recovery_ssl_verify_server_cert
为组复制恢复通道配置时,没有更新变量。(错误# 26142801)复制:当使用索引复制分区表时,在复制从机上
HASH_SCAN
被指定为slave_rows_search_algorithms
设置时,从I/O线程有时会因错误而停止HA_ERR_KEY_NOT_FOUND
.(错误# 26137159)复制:这是可能的
server_uuid
相同的值group_replication_group_name
.这样做可能会导致意外的行为,因为gtid是由UUID标识的。现在不可能设置了server_uuid
相同的值group_replication_group_name
.(错误# 26035931)复制:系统变量
pseudo_slave_mode
(用于内部服务器使用)有时会在事务内部更改断言时抛出断言。服务器不再在事务中更改此变量。(Bug #26034192, Bug #86250)复制:方法指定的写集用于复制从的并行处理时
binlog_transaction_dependency_tracking
系统变量),空事务现在被忽略,并且对中继日志旋转的处理已经优化。(错误# 25982097)复制:性能模式
replication_applier_status_by_worker
表有时会错误地为未活动的工作线程显示APPLYING_TRANSACTION的值,因为在工作线程停止之前填充了表。(Bug #25896166, Bug #85951)复制:正在尝试卸载插件
开始GROUP_REPLICATION
执行可能会导致意外的行为。(Bug #25423650, Bug #91042, Bug #28088177)复制:如果在创建多个从应用程序工作线程时发生故障,一些线程将被保留为孤立的,它们的资源将不会被收集。感谢Laurynas Biveinis为修复此bug所做的贡献。(Bug #24679056, Bug #82980)
复制:的
binlog_checksum
选项不能在事务中更改。当请求的函数在二进制日志上执行时,MySQL不能记录此语句,这在事务中是必需的。(错误# 22914463)复制:可以使用组复制流控制选项的无效值启动服务器。现在,
——group-replication-flow-control-min-quota
,——group-replication-flow-control-max-quota
,——group-replication-flow-control-min-recovery-quota
选项在服务器启动时进行验证。(Bug #87206, Bug #26531899)复制:如果主机名解析对Group Replication中的成员不起作用,则尝试连接时返回的错误是引用凭据。错误消息已得到改进,以描述主机名解析的问题。(Bug #86858, Bug #26368004)
复制:组复制插件不再设置
auto_increment_increment
而且auto_increment_offset
变量,当单个主模式是活动的。(Bug #86669, Bug #26263155)复制:Group Replication分区线程在Performance Schema表中不可见。(Bug #86626, Bug #26241008)
复制:
group_replication_force_members
可以在团队正常工作的情况下使用,换句话说,大多数人都可以接触到。这种不正确的使用可能会导致团队的不稳定。因此,它的使用被限制在创建它的场景中,即当大多数成员不可访问时,从前一个组的成员的子集中形成一个新的成员。(Bug #86359, Bug #26093967)复制:在同时运行组复制和异步复制的成员上,异步复制不尊重组复制要求的限制,例如只使用InnoDB存储引擎,表需要主键等等。这也可能在运行时遇到mysqlbinlog对成员。现在,正在运行Group Replication和异步复制的成员不允许破坏Group Replication的需求。(Bug #85164, Bug #25609945)
参考文献:参见Bug #85781, Bug #25828806。
复制:将运行较低版本的成员加入运行较高版本的组会导致运行较高版本的成员无法访问。(Bug #85026, Bug #25568493)
JSON:JSON对象和数组的内部表示中的容器(
Json_object
而且Json_array
)已经更改为使用智能指针而不是原始指针Json_dom
,因此孤立的DOM对象现在会自动销毁。(错误# 26161264)JSON:ASCII字符31 (
\ u001f
当JSON文档被格式化为字符串(例如,by铸造(“\ u001f”为JSON
)).(错误# 25977959)JSON:当一个
path_expression
标识了一个非数组值JSON_INSERT ()
而且JSON_ARRAY_INSERT ()
函数无法求值path_expression
[0]等于path_expression
.(Bug #86213, Bug #26022576)JSON:搜索与
JSON_EXTRACT ()
使用通配符花费了大量的时间。(Bug #84523, Bug #25418534)参考文献:参见Bug #83959, Bug #25151440。
在高负载下,性能模式缓冲区容器代码中会出现无限循环。(错误# 26666274)
mysql特定的类型定义,例如
uchar
而且my_bool
被无意中重新引入到客户端名称空间,如果mysql.h
包括头文件。(Bug #26588846, Bug #26582752, Bug #87337)uint8korr ()
相关的宏是固定的,因此它们显式地进行未对齐访问,甚至在x86上也是如此。(Bug #26568748, Bug #87298)的
main.mysql_upgrade_grant,
main.roles-upgrade
,auth_sec.secure_file_priv_warnings
,测试用例错误地处理了错误日志。的sys_vars.innodb_redo_log_encrypt_basic
测试用例输出不稳定。感谢Laurynas Biveinis的补丁。(Bug #26562401, Bug #87279, Bug #26575150, Bug #87313, Bug #26575142, Bug #87314, Bug #26582158, Bug #87303)对于调试版本,使用
sql_buffer_result
启用后,递归公共表表达式将导致服务器退出。(错误# 26556025)不正确地将窗口函数解析为常量函数可能导致服务器退出。(错误# 26500442)
对于窗口函数,使用
GROUP BY……与汇总
可能导致服务器退出。(Bug #26497353, Bug #26497247)窗口函数,
JSON
列斯提出了一个断言。(错误# 26496733)对于窗口函数,一个小于参数的值
范围
帧导致服务器退出。(错误# 26496645)编译和
-DWITHOUT_SERVER = 1
导致my_symlink.c
由于丢失而导致编译失败# include
为my_dir.h
.感谢Christian Hesse的补丁。(Bug #26495816, Bug #87137)编译和
-DWITH_SSL =系统
-DWITH_ZLIB =系统
假设系统openssl zlibCommand是可用的,但情况可能并非如此。现在检查该命令的可用性,如果不可用,则zlib_decompress效用是建立。(Bug #26494495, Bug #87123)yaSSL无法正确执行TLS加密协商。(错误# 26482173)
一些
thread_stack
设置可能导致服务器退出。(错误# 26438067)对于窗函数,a
行
帧接受行数的非整数参数。(Bug #26411055, Bug #86990)替换(UUID(),…)
表达式可能被缓存(不正确地),并为结果集的每一行返回相同的值。(错误# 26395601)在源代码树中构建MySQL时,制作安装安装了一些
CMake
文件到mysql-test
目录。(Bug #26385175, Bug #86905)的
PROCESS_ID
列中的“性能架构”session_connect_attrs
而且session_account_connect_attrs
表格从INT
来长整型数字无符号
以适应更大的进程ID值。感谢Daniël van Eeden提供的补丁。(Bug #26357806, Bug #86835)生成的列上的索引,其值是由
JSON_EXTRACT ()
,优化器有时没有在应该使用的时候使用它。(错误# 26352119)设置
log_error_services
系统变量零
导致服务器退出。(错误# 26331795)为焦油文件包,一些测试套件共享库安装在服务器包而不是测试包中。(错误# 26329850)
显示列
一个有效的视图可能会失败。(Bug #26322203, Bug #86778)导致重命名或删除直方图统计信息的操作可能导致服务器退出。(错误# 26303972)
对于一个
VARCHAR
列,使用显式排序规则(命令
)比隐式排序要慢得多(不col_name
核对collation_name
核对
子句),即使显式排序与隐式排序相同。(Bug #26286790, Bug #86710)SET binlog_format = ROW
产生语法错误,因为行
现在是一个保留词。为了保持向后兼容性,现在专门识别了该语法。(错误# 26269280)设置PERSIST_ONLY
,应该只允许拥有SYSTEM_VARIABLES_ADMIN
而且PERSIST_RO_VARIABLES_ADMIN
权限,但也不正确地允许用户使用超级
特权。(错误# 26247864)的
information_schema_stats
configuration选项,在MySQL 8.0.0中引入,被删除并替换为information_schema_stats_expiry
.information_schema_stats_expiry
为缓存定义过期设置INFORMATION_SCHEMA
表统计数据。有关更多信息,请参见优化INFORMATION_SCHEMA查询.的
TABLES_DYNAMIC
而且STATISTICS_DYNAMIC
删除系统内部视图。(Bug #26203731, Bug #83957)Debian平台的源包包含预先构建的调试二进制文件,这会在构建这些二进制文件的体系结构以外的任何体系结构上导致构建失败。(错误# 26186911)
如果在服务器启动期间使用UDF注册服务,则该服务无法工作。(错误# 26173244)
通过更改性能模式禁用表插装
setup_objects
表可能导致索引统计信息中的索引名称不正确。(错误# 26162562)试图删除不存在的表空间文件时返回误导性错误消息。(Bug #26133507, Bug #86438)
运行时mysqlbinlog与
——read-from-remote-server
方法指定的规则——rewrite-db
选项被忽略,因此数据不会写入目标数据库。(Bug #26117735, Bug #86288)在DDL操作期间从数据字典缓存中复制的时间戳数据使用
time_zone
不再有效的值。结果的时间戳数据是不正确的,导致发行版构建中的错误和调试构建中的断言失败。(Bug #26091333, Bug #86290)数据字典更新成功,但写入二进制日志事件失败,可能导致状态不一致。(错误# 26037355)
mysqlbinlog现在打印事件类型的完整元数据
Table_map_log_event
.(错误# 26020990)的一些字符串函数
改变事件
语句可能导致服务器退出。(错误# 25942505)卸载
daemon_memcached
插件导致严重错误。(错误# 25909540)准备的语句,使用了一个公共表表达式和许多
?
参数可能很慢。(Bug #25903274, Bug #85933)的
rpl_diff.inc
测试用例文件没有发现服务器之间的数据差异。感谢Yura Sorokin的补丁。(Bug #25860138, Bug #85838)ngram全文解析器搜索查询返回错误的结果并引发断言。(错误# 25851975)
索引虚拟生成列、外键和触发器的组合可能导致引发断言。(Bug #25817660, Bug #85757)
从视图中进行选择可能会产生启用实体化和禁用实体化的不同结果。(Bug #25782811, Bug #85622)
在使用
设置保存
设置event_scheduler
系统变量,如果以——skip-grant-tables
选择。(错误# 25776940)对于调试构建,向具有外键关系的表添加索引可能会引发断言。(错误# 25739983)
的
INFORMATION_SCHEMA。REFERENTIAL_CONSTRAINTS
表请求的外键信息InnoDB
存储引擎代替数据字典。(错误# 25730513)一个失败的
删除视图
可以写成二进制对数。(错误# 25680097)显示创建视图
有时在原始视图定义中没有的表名中添加数据库名称前缀。(Bug #25634576, Bug #85176)性能模式
variables_info
表显示不正确VARIABLE_SOURCE
而且VARIABLE_PATH
指定的选项文件中设置的变量的值包括!
或includedir !
指令。(错误# 25563891)对于基于uc的排序,常量字符串传播可能会失败。(Bug #25503965, Bug #84837)
mysqlpump转储表数量的进度信息显示错误。(错误# 25432850)
UCA 9.0.0排序规则的计算对于裁剪包含缩写字符的规则是低效的。(Bug #25426632, Bug #84577, Bug #25426632, Bug #84577)
GROUP BY DESC
在小数
值可能被错误分组零
与非零
值。(Bug #25407964, Bug #84537)一些, mysqldump警告进入标准输出而不是标准错误输出,因此被写入转储文件。(Bug #25380000, Bug #82992)
零
的结果生成的值与汇总
在具有?属性的视图上执行准备好的语句时,已被前一行的值替换GROUP BY . .与汇总
条款。(错误# 25174118)文本全文搜索结果超过
innodb_ft_result_cache_limit
设置。这个bug的补丁也回移植了一个相关的补丁(bug #21140111)。(错误# 25033538)MySQL 8.0.1中的解析器重构导致了一些错误的处理
插入……重复密钥更新
语句。这些问题已经得到了纠正。(Bug #24716127, Bug #25526439, Bug #25071305)对于调试版本,a
创建表
声明的VARBINARY
或二进制
列的默认值为十六进制格式,会导致服务器退出。(Bug #24679166, Bug #83020)类中的子查询调用它,如果优化器认为某个存储函数是常量
不是在
条件在哪里
子句可能导致服务器退出。(错误# 23577867)一个, mysqldump修复了内存泄漏。感谢Yura Sorokin的补丁。(Bug #23531150, Bug #81714)
当查询使用了批处理键访问优化,并且虚拟生成的列是连接缓冲区的一部分时,可能会导致不正确的结果或服务器出口。(错误# 23169112)
如果一个会话回滚到一个保存点,然后被终止,则可以提交保存点之前的语句。(Bug #22350047, Bug #79596)
MySQL接受对外部查询块中定义的聚合表达式别名的引用,即使该引用发生在GROUP BY子查询中,而该引用是无意义的。(Bug #21974346, Bug #78785)
对于使用Connector/Python并使用
sha256_password
插件,服务器可能无法正确处理连接。(错误# 21421642)一些
选择不同的
查询与集团
可能返回不正确的结果。(Bug #20692219, Bug #76283)