这是一个里程碑版本,使用风险自负。不支持在里程碑版本之间(或从里程碑版本到GA版本)升级。重要的开发更改发生在里程碑版本中,您可能会遇到兼容性问题,例如除了通常的运行过程之外还需要注意的数据格式更改mysql_upgrade.例如,您可能会发现有必要转储数据, mysqldump升级前重新加载。(在任何情况下,在升级前进行备份都是一种谨慎的预防措施。)
复制:MySQL复制现在支持多线程从机在不同数据库之间并行执行从机的复制事件,当满足某些条件时,这可以显著提高应用程序的吞吐量。最优的情况是每个数据库对数据进行分区,并且给定数据库内的更新以与主数据库上相同的相对顺序发生。但是,不需要在不同的数据库之间协调事务。
的
slave_parallel_workers
服务器系统变量(在此版本中添加)设置并行执行复制事件的从工作线程数。当启用并行执行时,从SQL线程充当从工作线程的协调器,事务在每个数据库的基础上分布。这意味着从服务器上的工作线程可以处理给定数据库上的连续事务,而无需等待其他数据库的更新完成。由于不同数据库上的事务在从服务器上发生的顺序可能与在主服务器上发生的顺序不同,因此检查最近执行的事务并不能保证来自主服务器的所有先前事务都已在从服务器上执行。当使用多线程从服务器时,这对日志记录和恢复有影响。有关在从机上使用多线程时如何解释二进制日志记录信息的信息,请参见SHOW SLAVE STATUS语句.
以下是对查询优化器的改进:
类中的子查询,优化器可以更有效地处理
从
子句(即派生表):有关更多信息,请参见优化派生表.
现在可以使用批量键访问(BKA)连接算法,它同时使用对连接表的索引访问和连接缓冲区。BKA算法支持内部连接和外部连接操作,包括嵌套的外部连接。BKA的好处包括由于更高效的表扫描而提高的连接性能。
属性中添加了两个标志
optimizer_switch
系统变量(block_nested_loop
而且batched_key_access
).这些标志控制优化器如何使用块嵌套循环和批处理键访问连接算法。在此之前,optimizer_join_cache_level
采用系统变量进行联接缓冲区控制;此变量已被删除。有关更多信息,请参见块嵌套循环和批处理键访问连接.
优化器现在具有跟踪功能。这将有助于优化器开发人员,以及针对优化器提交bug并希望提供更多有助于解决bug的信息的用户。接口由一组
optimizer_trace_
系统变量和xxx
INFORMATION_SCHEMA。OPTIMIZER_TRACE
表,但可能会更改。详细信息请参见MySQL内部:跟踪优化器.
(Bug #44802, Bug #11753371, Bug #14295, Bug #11745379, Bug #27975, Bug #11746677)
性能模式增加了以下内容:
性能模式现在使用阶段和语句。阶段是语句执行过程中的步骤,例如解析语句、打开表或执行
filesort
操作。阶段对应于显示的线程状态显示PROCESSLIST
或者在INFORMATION_SCHEMA。PROCESSLIST
表格阶段在状态值改变时开始和结束。在事件层次结构中,等待事件嵌套在阶段事件中,阶段事件嵌套在语句事件中。要在等待事件表中反映此嵌套,例如
events_waits_current
,NESTING_EVENT_ID
列现在可以是非零
表示EVENT_ID
嵌套事件的事件的值,以及NESTING_EVENT_TYPE
指示嵌套事件类型的新列。的
setup_instruments
表现在包含名称以阶段
而且声明
.与这些仪器相对应的是setup_timer
表现在包含的行的名字
的值阶段
而且声明
指示阶段和语句事件计时的单位。它们的默认单位是纳秒
.这些新表存储了阶段和语句事件:
events_stages_current
:当前阶段事件events_stages_history
:每个线程最近的阶段事件events_stages_history_long
:最近的舞台事件events_statements_current
:当前报表事件events_statements_history
:每个线程最近的语句事件events_statements_history_long
:最近的声明事件总体
的
setup_consumers
表现在包含消费者值,其名称与这些表名称相对应。这些消费者可用于筛选阶段和语句事件的集合。还有提供聚合阶段和语句信息的汇总表。
应用程序开发人员可以使用语句插装来详细查看应用程序生成的语句,以及服务器如何执行这些语句。Stage instrumentation可用于关注语句的特定部分。这些信息可能有助于改变应用程序对数据库发出查询的方式,最小化应用程序在服务器上的占用空间,以及提高应用程序性能和可伸缩性。
Performance Schema现在提供有关到服务器的连接的统计信息。当客户端连接时,它使用特定的用户名从特定的主机进行连接。性能模式跟踪每个帐户(用户名+主机名)的连接,并分别跟踪每个用户名和每个主机名,使用这些表:
还有一些汇总表提供聚合的连接信息。
为每个应用程序定义一个专用帐户是一种良好的安全实践,这样应用程序就可以只执行其操作期间所需的操作。这还有助于监控,因为应用程序开发人员在针对给定数据库服务器部署多个应用程序时,可以使用连接表中的信息查看每个应用程序的负载统计信息。
有关更多信息,请参见性能架构连接表.
在此之前,
setup_objects
表只能用于通过包含指定要检测的对象。没有办法显式禁用对象插装,例如为除特定数据库中的表外的所有表配置插装。现在,setup_objects
表包含一个启用
列,指示是否检测匹配对象。此特性改进了setup_objects
表可用性,因为它允许排除模式。中的表的默认内容现在包含一个行,该行禁止对表进行插装
mysql
数据库,这是对以前默认对象插装的更改。选择此更改的前提是,终端用户希望检测应用程序对象,而不是内部服务器表。由于I/O和锁定,更改减少了默认的性能模式开销mysql
表没有被检测。类中的表禁用插装的行
INFORMATION_SCHEMA
而且performance_schema
数据库。这不是行为上的改变,因为这些表之前没有插装,但是这些行显式地显示了完整的对象插装默认值。性能模式现在使用套接字。这样就可以监视与服务器之间的网络通信。收集的信息包括网络活动,如套接字实例、套接字操作以及传输和接收的字节数。
的
setup_instruments
表现在包含名称以等待/ io /套接字
.还有一个闲置
当套接字等待来自客户端的下一个请求时,用于空闲事件的工具。与后一种仪器相对应的是setup_timer
表现在包含具有的名字
的价值闲置
空闲事件定时的单位。默认单位为微秒
.这些新表包含套接字信息:
socket_instances
:到MySQL服务器的活动连接的实时快照socket_summary_by_instance
类生成的定时器和字节计数统计信息的聚合/ *等待io /插座
所有套接字I/O操作的工具,每个套接字实例socket_summary_by_event_name
类生成的定时器和字节计数统计信息的聚合/ *等待io /插座
用于所有插座I/O操作的仪器,每个插座仪器
应用程序开发人员,特别是开发基于web的应用程序的开发人员,可以使用套接字表中的信息来评估由应用程序生成的查询直接导致的网络通信量。这在开发用于大规模实现的应用程序时特别有用。
有关更多信息,请参见socket_instances表,Socket汇总表.
这些变化的结果是
打开表
线程状态已删除。的打开表
State保留,可以代替使用。(见一般线程状态.)如果您从早期版本升级到此MySQL版本,则必须运行mysql_upgrade(并重新启动服务器)以将这些更改合并到
performance_schema
数据库。
属性创建的临时表
创建临时表
语句时,特权模型已更改。在此之前,
创建临时表
属性创建临时表创建临时表
声明。但是,临时表上的其他操作,例如插入
,更新
,或选择
,对于包含临时表的数据库或同名的非临时表的操作,需要额外的特权。为了将临时表和非临时表的特权分开,针对这种情况的一种常见解决方法是创建一个专用于使用临时表的数据库。然后,对于该数据库,用户可以被授予
创建临时表
特权,以及该用户所做的临时表操作所需的任何其他特权。现在,
创建临时表
Privilege允许用户使用创建临时表
和以前一样。但是,在会话创建临时表之后,服务器不再对表执行进一步的权限检查。正在创建的会话可以对表执行任何操作,例如删除表
,插入
,更新
,或选择
.此更改的一个含义是,即使当前用户没有创建临时表的权限,会话也可以操作其临时表。属性,假设当前用户没有
创建临时表
特权,但能够执行定义者
-context存储过程,该存储过程以具有权限的用户执行创建临时表
这样就创建了一个临时表。在过程执行时,会话使用定义用户的特权。过程返回后,有效的权限恢复到当前用户的权限,该用户仍然可以看到临时表并对其执行任何操作。(Bug #27480, Bug #11746602)语句日志记录已被修改,以下语句的密码不会以纯文本形式出现:
创建用户…由…授予……由…设置密码…
对于一般查询日志、慢速查询日志和二进制日志,这些语句中的密码将被重写,以不逐字显示在语句文本中。重写不适用于其他语句。
方法启动服务器,可以抑制常规查询日志的密码重写
——log-raw
选择。此选项可能用于诊断目的,以查看服务器接收到的语句的确切文本,但出于安全原因,不建议用于生产使用。您将注意到的一个变化是,无法解析的语句(例如,由于语法错误)不再被写入常规查询日志,因为无法知道它们是无密码的。需要记录所有语句(包括有错误的语句)的用例应该使用
——log-raw
选项,请记住,这也绕过了密码编写。
不兼容的更改:在审计插件接口中
event_class
成员已从mysql_event_general
结构和通知函数的调用序列已更改。最初,第二个参数是指向事件结构的指针。函数现在将此信息作为两个参数接收:事件类号和指向事件的指针。与这些变化相对应,MYSQL_AUDIT_INTERFACE_VERSION
增加到0 x0300
.的
plugin_audit.h
头文件和NULL_AUDIT
的示例插件插件/ audit_null
目录根据这些更改进行了修改。看到编写审计插件.重要的变化;复制:的
重置的奴隶
语句已扩展为所有
关键字。除了删除master.info
,relay-log.info
,以及所有中继日志文件,重置从机全部
还清除在执行后在内存中保存的所有连接信息重置的奴隶
.(Bug #11809016, Bug #11763210)性能;InnoDB:关闭时,MySQL可以记录缓存在数据库中的页面
InnoDB
缓冲池,然后重新启动时重新加载这些相同的页面。这种技术可以帮助在重新启动后快速达到一致的吞吐量,而不会花费很长时间热身时期。这种预加载功能使用了紧凑的保存格式和后台I/O来最小化MySQL服务器的开销。通过配置选项启用基本转储/恢复功能innodb_buffer_pool_dump_at_shutdown
而且innodb_buffer_pool_load_at_startup
.相关配置选项如innodb_buffer_pool_dump_now
而且innodb_buffer_pool_load_now
为高级用户提供了额外的灵活性,可以为不同的工作负载配置MySQL服务器。看到保存和恢复缓冲池状态获取详细信息。(Bug #11765816, Bug #58819)性能;InnoDB:当
innodb_file_per_table
启用时,每个InnoDB
表在其自己的表空间文件(.ibd
文件)。随着表内数据的增长,.ibd
文件扩展,这是一个I/O操作,可能会为繁忙的系统带来瓶颈InnoDB
表。为InnoDB
存储在系统表空间时,扩展操作发生的频率较低,因为空间被释放删除
或截断
一个表中的操作可以被另一个表重用。MySQL 5.6提高了扩展的并发性
InnoDB
表空间文件(.ibd
文件),所以倍数.ibd
文件可以同时扩展,而不会阻塞其他线程执行的读或写操作。(Bug #11763692, Bug #56433)性能;InnoDB:可以提高工作效率
InnoDB
通过指定配置选项的校验和特性innodb_checksum_algorithm = crc32
,它会打开一个更快的校验和算法。此选项替代innodb_checksums
选择。使用旧的校验和算法写入的数据(选项值innodb
)完全向上兼容;使用新的校验和算法修改的表空间(选项值crc32
)不能降级到不支持的MySQL早期版本innodb_checksum_algorithm
选择。(Bug #11757757, Bug #49852)性能;InnoDB:检测的代码死锁在
InnoDB
交易已修改为使用固定大小的工作区域而不是递归算法。结果,产生的检测操作更快。您不需要做任何事情就可以利用这个增强功能。在旧的和新的检测机制下,您可能会遇到
搜索得太深
错误,该错误不是真正的死锁,但要求您以与死锁相同的方式重新尝试事务。性能;InnoDB:的
InnoDB
线程调度代码经过了增强,可以更好地处理超过16个线程。在可能的地方,使用原子指令。您可以通过设置配置选项来控制该特性innodb_thread_concurrency
为非零值,并调整的值innodb_adaptive_max_sleep_delay
.看到为InnoDB配置线程并发获取详细信息。性能;InnoDB:工作继续减少冲洗操作从
InnoDB
主线程,在page_cleaner
线程。的最新更改缓冲池冲洗算法可以提高某些I/ o约束工作负载的性能,特别是在具有多个缓冲池实例的配置中。控件的设置来控制此功能innodb_lru_scan_depth
而且innodb_flush_neighbors
配置选项。要找到最佳设置,请使用自适应哈希索引和Doublewrite缓冲打开和关闭。看到配置冲缓冲池欲知详情。性能;InnoDB:该特性可选地移动
InnoDB
undo日志走出系统表空间分成一个或多个单独的表空间.undo日志的I/O模式使这些新的表空间很适合移动到SSD存储,同时将系统表空间保留在硬盘存储上。该特性由配置选项控制innodb_undo_directory
,innodb_undo_tablespaces
,innodb_undo_logs
(前身为innodb_rollback_segments
).用户不能删除为保存而创建的单独表空间InnoDB
撤销日志或个人段在这些表空间中。这样配置的MySQL实例是不向下兼容的;旧版本的MySQL不能访问驻留在自己的表空间中的undo日志。
详细信息请参见撤消表空间.
InnoDB:
InnoDB
现在在创建二级索引时允许并发读取。(错误# 11853126)参考:参见Bug #11751388, Bug #11784056, Bug #11815600。
InnoDB:的
InnoDB
重做日志文件的最大合并大小从4GB增加到512GB。方法指定较大的值innodb_log_file_size
选择。没有特殊的升级过程或文件格式来利用这种增强。中已经保留了记录额外大小信息的字节
InnoDB
系统表空间.但是,如果您开发与InnoDB
逻辑序列号(LSN)值时,更改代码以使用有保证的64位变量来存储和比较LSN值,而不是32位变量。(Bug #11765780, Bug #58779)InnoDB:
InnoDB
现在可以使用排序规则ID大于255的字符集创建表。例如InnoDB
表现在可以创建,其中以前359的排序规则ID超出了InnoDB
.Mysql >显示排序像'ucs2_vn_ci'+------------+---------+-----+---------+----------+---------+ | 排序|字符集|默认Id | | |编译Sortlen | +------------+---------+-----+---------+----------+---------+ | ucs2_vn_ci | ucs2 | 359 | | | 8 | +------------+---------+-----+---------+----------+---------+ 1行集(0.00秒)mysql > CREATE TABLE two_byte_collation (c1 char(1)字符集UCS2核对UCS2_VN_CI) - >引擎= INNODB;查询OK, 0行受影响(0.16秒)
这个功能打开了
InnoDB
用于一系列用户定义字符集的表。MySQL预定义字符集以前被限制为255个字符,现在这个限制被取消了。看到选择排序规则ID获取更多信息。复制:的错误消息中添加了时间戳
Last_IO_Error
而且Last_SQL_Error
的输出的列显示奴隶状态
.现在这些时间戳显示在各自的列中,列名为Last_IO_Error_Timestamp
而且Last_SQL_Error_Timestamp
,分别。(Bug #11765599, Bug #58584)参考:参见Bug #43535, Bug #11752361。
复制:
开始
,提交
,回滚
语句现在与语句一起缓存,而不是在缓存刷新到二进制日志时写入。此更改不会影响DDL语句(被写入语句缓存,然后立即刷新)或Incident事件(与Rotate事件一起,仍然直接写入二进制日志)。参考:参见Bug #57275, Bug #11764443。
微软的Windows操作系统:Windows安装程序现在在MySQL菜单中创建一个名为
MySQL命令行客户端- Unicode
.此项调用mysql客户端,其属性设置为使用Unicode通过控制台与MySQL服务器通信。它通过了——default-character-set = utf8
选项mysql并将字体设置为明星控制台
Unicode-compatible字体。看到Windows上的Unicode支持.后
解释扩展
时,已对显示的转换后的查询进行了更改显示警告
.每一个选择
now部分前面有theid
的值。解释
输出一行。这样就更容易看到这些行与转换后的查询的各个部分之间的对应关系。例如,这个查询:解释扩展select 36 from dual
结果:
/* select#1 */ select 36 from dual
这个问题:
(SELECT b FROM u UNION SELECT c FROM v)
结果:
(/* select#2 */ select b from u union /* select#3 */ select c from v);
(错误# 13035597)
取消了几个内存分配调用,从而提高了性能。(错误# 12552221)
CMakeLinux上的配置支持现在提供一个布尔值
ENABLE_GCOV
选项,用于控制是否包含对gcov.(错误# 12549572)在此之前,二进制日志和中继日志的性能模式工具使用了以下工具:
等待/ io /文件/ sql / binlog等待io /文件/ sql / binlog_index等待/同步/互斥锁/ sql / MYSQL_BIN_LOG:: LOCK_index等待/同步/电导率/ sql / MYSQL_BIN_LOG:: update_cond
现在,用于中继日志的仪器使用这些仪器,这使得区分二进制日志和中继日志事件成为可能:
等待/ io /文件/ sql / relaylog等待io /文件/ sql / relaylog_index等待/同步/互斥锁/ sql / MYSQL_RELAY_LOG:: LOCK_index等待/同步/电导率/ sql / MYSQL_RELAY_LOG:: update_cond
(Bug #59658, Bug #11766528)
一个新的服务器选项,
——plugin-load-add
,补充了——plugin-load
选择。——plugin-load-add
将一个或多个插件添加到启动时要加载的插件集。参数格式与for相同——plugin-load
.——plugin-load-add
可以用来避免指定一个大的插件集作为单一的长而笨重——plugin-load
论点。——plugin-load-add
能在没有的情况下给予吗——plugin-load
,但任何实例——plugin-load-add
出现在前面——plugin-load
.没有影响是因为——plugin-load
重置要加载的插件集。的输出Mysqld——verbose——帮助在那有一个价值
plugin-load
不再印刷。(Bug #59026, Bug #11766001)当使用
——auto-generate-sql
选项,mysqlslap属性指定的模式——建立图表
选项,该选项可能是用户未预料到的。mysqlslap现在有一个——非放
选项,用于防止在测试运行期间创建的任何模式被删除。(Bug #58090, Bug #11765157)服务器现在通过
Ssl_server_not_before
而且Ssl_server_not_after
状态变量。这两个变量都有ANSI时间格式的值(例如,Sep 12 16:22:06 2013 GMT),或者对于非ssl连接为空。(Bug #57648, Bug #11764778)在此之前,
临时
使用创建临时表
使用默认存储引擎,除非定义包含显式的引擎
选择。的值为默认引擎default_storage_engine
系统变量)。从MySQL 5.5.5开始,默认存储引擎就从非事务性的MyISAM
引擎到事务InnoDB
引擎,临时
表引起了事务处理的开销。允许使用默认存储引擎
临时
表的设置独立于默认引擎的永久表,服务器现在支持default_tmp_storage_engine
系统变量。例如,创建临时
表默认为非事务性表,使用——default_tmp_storage_engine = MyISAM
.的存储引擎临时
表仍然可以在单独的基础上指定引擎
表定义中的选项。(Bug #49232, Bug #11757216)以前,对于链接到OpenSSL的MySQL二进制文件,如果SSL密钥文件提供给MySQL服务器或MySQL客户端程序(使用
——ssl密钥
选项)被密码短语保护,程序将提示用户输入密码短语。现在,与yaSSL链接的MySQL二进制文件也是如此。(Bug #44559, Bug #11753167)的mysql客户端程序现在有一个
——二进制模式
选项,在处理时提供帮助mysqlbinlog输出可能包含团
值。默认情况下,mysql翻译\ r \ n
在语句字符串中\ n
和解释\ 0
作为语句结束符。——二进制模式
禁用两个特性。它还会禁用所有mysql命令除外字符集
而且分隔符
在非交互模式下(用于管道输入mysql或使用源
命令)。(Bug #33048, Bug #11747577)链接到OpenSSL(而不是yaSSL)的MySQL二进制文件现在支持SSL连接的证书撤销列表:
MySQL服务器支持
ssl_crl
而且ssl_crlpath
系统变量,指示包含此类文件的撤销列表文件或目录。MySQL客户端程序支持SSL识别
——ssl-crl
而且——ssl-crlpath
用于指定包含此类文件的撤销列表文件或目录的选项。的
将master更改为
语句MASTER_SSL_CRL
而且MASTER_SSL_CRLPATH
选项,用于指定从服务器连接到主服务器时要使用的撤销列表信息。的mysql.slave_master_info
File还有两行用来存储这些选项的值。的显示奴隶状态
语句还有两列用于显示这些选项的值。的
mysql_options ()
C API函数MYSQL_OPT_SSL_CRL
而且MYSQL_OPT_SSL_CRLPATH
选项,用于指定客户端连接到主服务器时使用的撤销列表信息。此外,mysql_options ()
现在也支持MYSQL_OPT_SSL_CA
,MYSQL_OPT_SSL_CAPATH
,MYSQL_OPT_SSL_CERT
,MYSQL_OPT_SSL_CIPHER
,MYSQL_OPT_SSL_KEY
选项,用于指定其他SSL参数。
(Bug #31224, Bug #11747191)
mysqld现在有一个
——ignore-db-dir
选项,该选项告诉服务器为了显示数据库
语句或INFORMATION_SCHEMA
表。例如,如果MySQL配置将数据目录定位在Unix上文件系统的根目录,系统可能会创建一个发现了+
服务器应该忽略的目录。使用以下命令启动服务器——ignore-db-dir = +发现丢失
导致该名称未被列为数据库。若要指定多个名称,请多次使用此选项,每个名称一次。用空值指定选项(即as
——ignore-db-dir =
)重置目录列表为空列表。在服务器启动时给出的此选项的实例用于设置
ignore_db_dirs
系统变量。命名的目录之外
——ignore-db-dir
,名称以句点开头的目录将被忽略。(Bug #22615, Bug #11746029)客户端程序现在显示更多关于SSL错误的信息,以帮助诊断和调试连接问题。(Bug #21287, Bug #11745920)
有些插件的操作是这样的,它们应该在服务器启动时加载,而不是在运行时加载或卸载。插件API现在支持以这种方式标记插件。的
st_mysql_plugin
结构现在有一个旗帜
成员,它可以设置为适用标志的或。的PLUGIN_OPT_NO_INSTALL
标志表示该插件不能在运行时使用安装插件
声明。方法加载的插件必须在服务器启动时加载——plugin-load
选择。的PLUGIN_OPT_NO_UNINSTALL
标志表示该插件不能在运行时使用卸载插件
声明。新成员改变了接口,所以插件的接口版本,
MYSQL_PLUGIN_INTERFACE_VERSION
,已从0 x0102
来0 x0103
.需要访问新成员的插件必须重新编译以使用version0 x0103
或更高版本。一个新的实用工具,mysql_plugin,允许MySQL管理员管理MySQL服务器加载哪些插件。属性提供了一种替代方法
——plugin-load
选项,或在服务器启动时使用安装插件
而且卸载插件
语句。看到mysql_plugin -配置MySQL服务器插件.以下项目已弃用,并将在未来的MySQL版本中删除。在显示替代方案的地方,应该更新应用程序以使用它们。
的
innodb_table_monitor
表格类似的信息可以从InnoDB
INFORMATION_SCHEMA
表。看到INFORMATION_SCHEMA InnoDB表.的
innodb_stats_sample_pages
系统变量。使用innodb_stats_transient_sample_pages
代替。
无证的
——所有
选择perror已被删除。同时,perror不再显示BDB错误码的消息。MySQL现在支持操作IPv6网络地址和验证IPv4和IPv6地址:
的
INET6_ATON ()
而且INET6_NTOA ()
函数在字符串和数字形式的IPv6地址之间转换。由于数字格式IPv6地址需要比最大整数类型更多的字节,该表示形式使用VARBINARY
数据类型。的
IS_IPV4 ()
而且IS_IPV6 ()
函数测试字符串值是否代表有效的IPv4或IPv6地址。的IS_IPV4_COMPAT ()
而且IS_IPV4_MAPPED ()
函数测试数值格式值是否表示有效的ipv4兼容地址或ipv4映射地址。没有对
INET_ATON ()
或INET_NTOA ()
操作IPv4地址的函数。
IS_IPV4 ()
更严格INET_ATON ()
因此,对于需要对无效值执行强检查的应用程序来说,它可能是有用的。另外,使用INET6_ATON ()
将IPv4地址转换为内部形式,并检查是否存在零
结果(表示无效的地址)。INET6_ATON ()
强度和IS_IPV4 ()
检查IPv4地址。的
max_allowed_packet
控件发送的参数值的最大大小现在由系统变量控制mysql_stmt_send_long_data ()
C语言API函数。的
NULL_AUDIT
的示例插件插件/ audit_null
目录中已更新事件的实例MYSQL_AUDIT_CONNECTION_CLASS
事件类。看到编写审计插件.
安全修复:修复了一个安全漏洞。(错误# 59533)
不兼容的更改:对于套接字I/O,当使用套接字超时时,针对服务器使用超时警报的情况进行的优化可能会导致放缓。
此问题的修复将导致以下更改:
以前,超时应用于整个包级别的发送或接收操作。现在,超时在更细的级别上应用于单个I/O操作,例如发送给定数据包的10个字节。
大于的包的处理
max_allowed_packet
已经改变了。以前,如果应用程序发送的数据包大于允许的最大大小,或者如果服务器未能分配足够大的缓冲区来容纳数据包,服务器将一直读取数据包,直到结束,然后跳过它并返回一个ER_NET_PACKET_TOO_LARGE
错误。现在,如果服务器无法处理如此大的数据包,它将断开会话。的默认值
MYSQL_OPT_CONNECT_TIMEOUT
选项mysql_options ()
不再是20秒。现在默认是没有超时(无限),与其他平台相同。在POSIX系统上构建和运行MySQL现在需要支持
poll ()
而且O_NONBLOCK
.这些应该可以在任何现代POSIX系统上使用。
(Bug #54790, Bug #36225, Bug #11762221, Bug #51244, Bug #11758972)
不兼容的更改:的
mysql_affected_rows ()
C API函数返回3(而不是2)插入……关于重复密钥更新
语句中存在重复的键值。现在,如果将行插入为新行,则每行受影响的行值为1,如果更新现有行,则为2,如果将现有行设置为当前值,则为0。如果您指定
CLIENT_FOUND_ROWS
旗帜mysql_real_connect ()
当连接到mysqld,如果将现有行设置为当前值,则受影响的行值为1(而不是0)。(Bug #46675, Bug #11754979)不兼容的更改:修改了与日期相关的断言的处理。此更改的结果是,当传递参数时,几个函数变得更加严格
日期()
函数值作为参数,并拒绝日期部分为零的不完整日期。受影响的功能有:CONVERT_TZ ()
,DATE_ADD ()
,DATE_SUB ()
,DAYOFYEAR ()
,LAST_DAY ()
,TIMESTAMPDIFF ()
,TO_DAYS ()
,TO_SECONDS ()
,周()
,工作日()
,WEEKOFYEAR ()
,YEARWEEK ()
.后来确定更严格的处理是不必要的
LAST_DAY ()
,它在MySQL 5.6.5中被恢复为允许零日部分。参考:参见Bug #13458237。
性能;InnoDB:上的操作的性能得到了改进
VARCHAR (
列N
)InnoDB
表,N
声明为大值,但表中的实际字符串值很短。(错误# 12835650)性能;InnoDB:这个机制
InnoDB
用来检测MySQL服务器是否空闲被做得更准确,以避免由于冲洗通常在没有其他活动发生时发生的操作。属性的挂起读请求时,该机制认为服务器不是空闲的InnoDB
缓冲池。(Bug #11766123, Bug #59163)InnoDB;复制:试图更新先前设置为的列
零
,是指InnoDB
表中没有主键导致从表上的复制失败找不到记录表格
'.请注意此问题在MySQL 5.6.6中无意中重新引入,并在MySQL 5.6.12中再次修复。
(Bug #11766865, Bug #60091)
参考:参见Bug #16566658。
InnoDB:的
DATA_LENGTH
中的列。INFORMATION_SCHEMA。表
表现在正确报告表空间的磁盘大小InnoDB
压缩表。(错误# 12770537)InnoDB:一个失败的
创建索引
操作InnoDB
表可能导致分配了一些内存但没有释放。属性创建的表可能会受到此内存泄漏的影响ROW_FORMAT =动态
或ROW_FORMAT =压缩
设置。(错误# 12699505)InnoDB:通过配置设置
innodb_file_per_table = 1
而且innodb_file_format =梭鱼
例如,插入大于页面大小一半的列值,并将该列包含在二级索引中,可能会在更新该列值时导致崩溃。(错误# 12637786)InnoDB:的基础表
InnoDB
持久统计特性被重命名并移动到mysql
数据库。innodb.table_stats
成为mysql.innodb_table_stats
,innodb.index_stats
成为mysql.innodb_index_stats
.(错误# 12604399)InnoDB:服务器可能会停止
InnoDB
将15分钟或更长时间的非常重的I/O负载解释为服务器挂起的指示。此更改修复了度量多长时间的逻辑InnoDB
线程正在等待,这在以前可能会产生误报。(Bug #11877216, Bug #11755413, Bug #47183)InnoDB:通过设置
lower_case_table_names = 2
,插入到InnoDB
外键约束覆盖的表可能在服务器重新启动后失效。(Bug #11831040, Bug #60196, Bug #60909)InnoDB:如果MySQL服务器在创建后立即崩溃
InnoDB
表,重新启动后试图访问表可能会导致另一次崩溃。如果服务器在之后停止,则可能发生此问题InnoDB
为表创建主索引,但是在索引定义记录到MySQL元数据之前。(Bug #11766824, Bug #60042)InnoDB:如果服务器在XA事务准备就绪但尚未提交时崩溃,则事务可能在重新启动后仍保留在系统中,并导致随后的关机挂起。(Bug #11766513, Bug #59641)
InnoDB:MySQL服务器可能挂起
创建表
,优化表
,或ALTER TABLE
类的表复制或其他DDL操作InnoDB
表,如果这些操作是由多个会话同时执行的。错误报告如下:InnoDB: Error: semaphore wait已经持续了600秒
(Bug #11760042, Bug #52409)
InnoDB:通过设置
lower_case_table_names = 2
,插入到InnoDB
外键约束覆盖的表可能在服务器重新启动后失效。这与Bug #11831040 / Bug #60196 / Bug #60909中的外键错误类似,但根源不同,发生在OS X上。分区:内部
get_partition_set ()
功能上没有考虑到某个关键规格的可能零
在某些情况下。(错误# 12380149)分区:在执行按行排序的检索索引合并时,分区处理程序使用分配给表的内存,而不是分配给查询的内存,导致直到关闭表才释放表对象内存。(Bug #11766249, Bug #59316)
分区:试图使用
修改表…交换分区
与没有分区的表的(不存在的)分区交换视图会导致服务器崩溃。(Bug #11766232, Bug #60039)分区:分区表的自动递增列即使没有被写入也会被检查。在调试版本中,这可能导致服务器崩溃。(Bug #11765667, Bug #58655)
分区:的
UNIX_TIMESTAMP ()
为了划分剪枝的目的,函数没有被视为单调函数。(Bug #11746819, Bug #28928)分区:的性能不佳的先前修复的问题
插入重复的密钥更新
有多个分区的表上的语句导致从特定索引读取一行的处理程序函数无法存储最后使用的分区的ID。这导致一些语句失败找不到记录错误。(Bug #59297, Bug #11766232)参考:这个问题是Bug #52455的回归。
复制:线程清理中的错误可能导致复制主服务器崩溃。(错误# 12578441)
复制:当使用基于行的复制和属性提升或降级时(请参阅复制具有不同数据类型的列),内部分配用于转换的内存
团
后来柱子没有被释放。(错误# 12558519)复制:在重新创建丢失的主信息存储库时,可能会发生内存泄漏,因为在重新创建存储库时,重新创建了用于引用存储库的新I/O缓存,但之前的缓存从未删除。(错误# 12557307)
复制:当用户线程和SQL线程都试图在安全设置其值之前读取相同的内存时,可能会在两者之间发生竞争条件。这个问题现在已经更正。
此外,与创建和追加日志事件相关的内部函数在存储数据时使用函数本地的内存,当函数返回时释放内存。的输出作为此问题修复的一部分
显示奴隶状态
已被修改,使其不再在随附的状态消息中引用文件或文件名,而是包含其中一条消息在重放LOAD DATA INFILE之前制作临时文件(追加)
或在重放LOAD DATA INFILE之前制作临时文件(创建)
.(错误# 12416611)复制:的名称
Ssl_verify_server_cert
中的列。mysql.slave_master_info
Table被拼错为Ssl_verify_servert_cert
.(Bug #12407446, Bug #60988)复制:当mysqlbinlog使用
——base64-output = decode-row
而且——起始位置=
, (pos
pos
是二进制日志中超过格式描述日志事件的一个点),会生成如下所示类型的虚假错误:malformed binlog:不包含任何Format_description_log_event…
但是,由于不打印格式描述日志事件并没有什么不安全的,因此已经为这种情况删除了错误。(错误# 12354268)
复制:一个失败的
创建用户
语句被错误地写入二进制日志。(Bug #11827392, Bug #60082)复制:类所使用的存储引擎不再可以更改
mysql.slave_master_info
而且mysql.slave_relay_log_info
表。这意味着,要使复制具有崩溃安全性,必须确保在开始复制之前这两个表都使用事务性存储引擎。有关更多信息,请参见中继日志和复制元数据存储库,记录副本状态到表的选项.(Bug #11765887, Bug #58897)
复制:即使事务没有更新任何非事务性表,也会将事务写入二进制日志。(Bug #11763471, Bug #56184)
参考:参见Bug #11763126, Bug #55789。
复制:mysqlbinlog使用
——生
选项在MySQL服务器5.0.3及更早版本的二进制日志中无法正常工作。(Bug #11763265, Bug #55956)复制:在从服务器上重试事务可能会向非事务表插入额外的数据。(Bug #11763126, Bug #55789)
参考:参见Bug #11763471, Bug #56184。
复制:几个复制错误消息的文本中出现了印刷错误。(这个词”位置”被拼错为”postion”(Bug #11762616, Bug #55229)
复制:从SQL线程中的临时死锁可能导致不必要的试图获得锁时发现死锁;尝试重新启动事务要在slave上登录的错误消息。
在这种情况下,只记录一个警告,除非
slave_transaction_retries
对于给定事务,此类警告的数量已超过。(Bug #11748510, Bug #36524)复制:当从机请求主机上不存在的二进制日志文件时,从机继续请求该文件。这导致slave的错误日志被低级错误淹没EE_FILENOTFOUND来自主机的错误(错误代码29)。(Bug #11745939, Bug #21437)
复制:如果一个
加载数据
使用基于语句的复制特性的语句复制a集
子句中,名称-值对使用方法(项目::print ()
),主要用于生成语句的输出,例如解释扩展
,并且不能依赖它来返回有效的SQL。在某些情况下,这可能会导致从服务器崩溃。为了解决这个问题,服务器现在以用户提供的原始形式命名每个值,并使用该形式进行创建
加载数据
用于基于语句复制的语句。(Bug #60580, Bug #11902767)参考资料:参见Bug #34283, Bug #11752526, Bug #43746。
复制:错误1590 (
ER_SLAVE_INCIDENT
)导致奴隶停止,甚至当它开始——slave-skip-errors = 1590
.(Bug #59889, Bug #11768580, Bug #11799671)复制:使用
——服务器id
选项mysqlbinlog可以导致格式描述日志事件从二进制日志中过滤,留下mysqlbinlog无法读取日志的剩余部分。现在这样的事件总是被读取,而不考虑这个选项的值。为了解决这个问题,mysqlbinlog现在也读取旋转日志事件而不考虑的值
——服务器id
.(Bug #59530, Bug #11766427)复制:一个失败的
删除数据库
语句会破坏基于语句的复制。(Bug #58381, Bug #11765416)复制:处理损坏的表映射事件可能导致服务器崩溃。如果事件将不同的表映射到相同的标识符,这种情况尤其可能发生,例如Bug #56226。
现在,在应用表映射事件之前,服务器将检查表是否已经使用不同的设置进行了映射,如果是,将引发一个错误并停止从SQL线程。如果它已经映射了相同的设置,或者如果该表被过滤规则设置为忽略,则行为没有变化:事件将被跳过,id也不会被检查。(Bug #44360, Bug #11753004)
参考:参见Bug #56226, Bug #11763509。
OS X:编译在OS X 10.7 (Lion)上失败,并出现警告:
函数'pthread_init'的隐式声明
(错误# 12779790)微软的Windows操作系统:添加对Windows身份验证的支持
libmysqlclient
引入了对系统Secur32库的链接依赖。Microsoft Visual c++链接信息现在自动拉入这个库。(错误# 12612143)微软的Windows操作系统:在Windows操作系统中,如果没有可用的DNS服务器,服务器拒绝客户端连接。(错误# 12325375)
微软的Windows操作系统:在Windows上,
authentication_string
专栏最近增加了mysql.user
表导致配置向导失败。(Bug #59038, Bug #11766011)性能模式导致了瓶颈
LOCK_open
.(错误# 12993572)mysqld_safe忽略任何值
plugin_dir
中指定的my.cnf
文件。(错误# 12925024)元数据锁定子系统增加了太多的开销
INFORMATION_SCHEMA
仅通过打开处理的查询.frm
或.TRG
文件和必须扫描许多表。例如,从information_schema中选择count(*)。触发器
是影响。(错误# 12828477)的结果
任何
带有嵌套连接的子查询可能缺少行。(错误# 12795555)禁用剖析或未编译,
set_thd_proc_info ()
不必要的文件名长度检查。(错误# 12756017)参考:这个问题是对Bug #59273的回归。
在启用维护者模式的情况下编译服务器失败海湾合作委员会4.6或更高。(错误# 12727287)
对于准备好的报表,使用
好吧
如果准备由于被杀死而失败,可以发送给客户端。(错误# 12661349)修正了一些Valgrind警告:
(Bug #12634989, Bug #59851, Bug #11766684)
对于调试版本,如果类型为,则字段类型检查将引发断言
MYSQL_TYPE_NULL
.(错误# 12620084)如果启用了索引条件下推,则可能由于无效的范围结束值而导致崩溃。(错误# 12601961)
空字符串的选项解析代码泄漏内存。(错误# 12589928)
服务器可能无法释放分配的内存时
插入延迟
在启用二进制日志记录时使用。(错误# 12538873)一个
DBUG_ASSERT
Bug #11792200在提出断言时过于激进。(错误# 12537160)参考:参见Bug #11792200。
在某些情况下,内存分配给
Query_tables_list: sroutines ()
没有得到适当的释放。(错误# 12429877)在修复了Bug #11889186之后,
MAKEDATE ()
年份部分大于9999的参数会引发断言。(错误# 12403504)此问题是对Bug #11889186的回归。
由于缺失,可能会引发断言
零
值检入Item_func_round: fix_length_and_dec ()
.(错误# 12392636)分配给
新的。
在触发器中,var_name
var_name
有一个团
或文本
类型,没有正确处理并产生不正确的结果。(错误# 12362125)如果索引条件下推代码下推包含子查询的索引条件,则可能引发断言。(错误# 12355958)
XA提交
如果发现必须回滚当前XA事务,则可能无法清理错误状态。因此,下一个XA事务在检查是否正确清除前一个事务时可以引发断言。(错误# 12352846)如果将二进制日志用作事务协调器日志,则可以在两阶段提交期间引发断言。(错误# 12346411)
InnoDB
可以将临时索引信息添加到INFORMATION_SCHEMA
,这可能会引发一个断言。(错误# 12340873)mysql_list_fields ()
为视图的字符列返回了不正确的字符集信息。(错误# 12337762)过于严格的断言可能导致服务器崩溃。(错误# 12321461)
mysql_upgrade没有正确升级
authentication_string
的列mysql.user
表格(错误# 11936829)优化器有时会选择前向索引扫描,然后执行文件排序来反转顺序,而不是按反向顺序扫描索引。(错误# 11882131)
类的多表更新会产生不适当的错误消息
InnoDB
具有集群主键的表将通过多个别名更新表,并执行更新,可能物理地移动至少其中一个别名中的行。现在错误信息是:主键/分区键更新是不允许的,因为表被同时更新为'
(错误# 11882110)tbl_name1
和"tbl_name2
'参考:参见Bug #11764529。
启用索引条件下推后,使用的查询
STRAIGHT_JOIN
数据包括零
值可能返回不正确的结果。(错误# 11873324)InnoDB
调用一些zlib
没有正确初始化的函数。(错误# 11849231)大数字的除法可能导致堆栈损坏。(错误# 11792200)
修正了产生
InnoDB
错误日志中的消息,解锁行在记录上找不到3模式锁
.子查询和类的组合可能会出现这种情况更新
条款读未提交
隔离级别。该修复还通过包含引起此类消息的原始SQL语句来改进此类消息的可调试性。(Bug #11766322, Bug #59410)启用Valgrind后,
InnoDB
信号量等待超时过低,可能会过期。(错误# 11765460)(5分区2)
而且(5.0 div 2)
产生不同的结果(2和3),因为后一个表达式的结果在转换为整数之前没有被截断。这与MySQL 5.0和5.1中的行为不同。现在两个表达式都得到2。(Bug #61676, Bug #12711164)如果禁用分区支持,则服务器编译失败。(Bug #61625, Bug #12694147)
Alter table {modify | change}…第一个
如果表的旧版本和新版本在列数据类型方面具有完全相同的结构,那么除了重命名列之外什么都不做。结果,列名到列数据的映射是错误的。同样的事情发生在删除表列添加一列
语句旨在生成与旧版本结构完全相同的表的新版本。(Bug #61493, Bug #12652385)元数据锁定的错误处理
用读锁刷新表
对于需要预锁的语句会导致两个问题:作为事务的一部分,执行任何需要预锁的数据更改语句(也就是说,涉及存储的函数或触发器)都会在一定程度上降低事务中所有后续语句的速度。定期涉及这些语句的事务的性能随着时间的推移逐渐降低。
作为事务的一部分,任何需要预锁的数据更改语句的执行都会阻止并发
用读锁刷新表
从事务进行到事务结束,而不是特定语句的结束。
(Bug #61401, Bug #12641342)
MySQL 5.5.11中引入的一个问题导致非常旧的(MySQL 4.0)客户端无法连接到服务器。(Bug #61222, Bug #12563279)
的小数部分”每秒查询次数”值可能会在MySQL状态输出中不正确地显示(例如,在的输出中mysqladmin状态或者是mysql
状态
命令)。(Bug #61205, Bug #12565712)的mysql-log-rotate脚本被更新,因为它引用了已弃用的MySQL选项。(Bug #61038, Bug #12546842)
使用
如果不存在则创建事件
对于已存在且已启用的事件,将导致该事件的多个实例运行。(Bug #61005, Bug #12546938)如果语句以不匹配的引号结束,服务器接受该语句,并将初始引号后面的内容解释为文本字符串。(Bug #60993, Bug #12546960)
加载数据
错误地解析了在文件系统中上升超过三层的相对数据文件路径名,导致无法找到该文件。(Bug #60987, Bug #12403662)固定”移位计数大于类型宽度”编译警告。(Bug #60908, Bug #12402772)
参考:参见Bug #12561303。
的表I/O
table_io_waits_summary_by_index_usage
性能模式表被统计为不使用索引更新
而且删除
语句,即使在使用索引时也是如此。(Bug #60905, Bug #12370950)中删除了内部客户端宏引用
client_plugin.h
头文件。这个引用使得文件不可用。(Bug #60746, Bug #12325444)比较
DATETIME
存储的程序变量和现在()
导致”非法混合排序错误”当character_set_connection
设置为use utf8
.(Bug #60625, Bug #11926811)从包含定义的视图中进行选择
有
子句失败,发生错误:1356:查看…'references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
(Bug #60295, Bug #11829681)
创建表
语法允许指定存储{默认内存磁盘| |}
选择。但是,此值未写入.frm
文件,以便后续创建表…就像
因为该表不包括这一选项。同时,
ALTER TABLE
错误地销毁了表空间。(Bug #60111, Bug #11766883, Bug #34047, Bug #11747789)的
mysql_load_plugin ()
C API函数没有清除之前的错误。(Bug #60075, Bug #11766854)对于某些存储过程的重复调用,服务器消耗的内存直到连接终止才释放。(Bug #60025, Bug #11848763)
服务器允许
max_allowed_packet
被设定为低于net_buffer_length
,这说不通,因为max_allowed_packet
上限开启了吗net_buffer_length
值。现在出现一个警告,值保持不变。(Bug #59959, Bug #11766769)服务器没有检查XA语句的某些无效无序序列,这些序列引发了断言。(Bug #59936, Bug #11766752, Bug #12348348)
索引条件下推代码访问未初始化的变量。(Bug #59843, Bug #11766678)
对于未知用户,本地密码插件错误地报告没有指定密码,即使它已经指定了。(Bug #59792, Bug #11766641)
选择不同的
中的确定性存储函数在哪里
子句可能产生不正确的结果。(Bug #59736, Bug #11766594)设置
optimizer_join_cache_level
到3或更大的值会引发某些查询的断言。(Bug #59651, Bug #11766522)以前,保存字节计数的性能模式表列为
长整型数字无符号
.这些被改成了长整型数字
(签署)。这样可以更容易地执行计算列之间差异的计算。(Bug #59631, Bug #11766504)的缺少变量初始化
Item_func_set_user_var
对象可以引发断言。(Bug #59527, Bug #11766424)对于某些查询,优化器对同一个索引执行了多次范围分析。(Bug #59415, Bug #11766327)
随着从GNU autotools到CMake用于配置MySQL的
USE_SYMDIR
预处理器符号被省略。这会导致符号链接失败(描述在使用符号链接).(Bug #59408, Bug #11766320)一个不正确的
max_length
值一年
值可以用于临时结果表联盟
,导致错误的结果。(Bug #59343, Bug #11766270)在
Item_func_in: fix_length_and_dec ()
,未初始化值的Valgrind警告被更正。(Bug #59270, Bug #11766212)属性的无效路径名参数
——defaults-extra-file
MySQL程序的选项导致程序崩溃。(Bug #59234, Bug #11766184)在
Item_func_month: val_str ()
, Valgrind的一个为时已晚的警告零
修正了价值检查。(Bug #59166, Bug #11766126)在
项目::get_date
,一个Valgrind的失踪警告零
修正了价值检查。(Bug #59164, Bug #11766124)在
extract_date_time ()
,一个Valgrind警告丢失的字符串结束检查被纠正。(Bug #59151, Bug #11766112)属性中列出了一些表,但性能模式没有对它们进行检测
setup_objects
表格(Bug #59150, Bug #11766111)在字符串上下文中,
MIN ()
而且MAX ()
函数没有考虑到a的无符号长整型数字无符号
论点。(Bug #59132, Bug #11766094)在
Item_func: val_decimal
,一个Valgrind的失踪警告零
修正了价值检查。(Bug #59125, Bug #11766087)在
圆的()
计算时,未初始化内存的Valgrind警告被更正。(Bug #58937, Bug #11765923)参考:这个问题是Bug #33143的回归。
优化器在OR-ing两个条件时创建的范围可能不正确,导致不正确的查询结果。(Bug #58834, Bug #11765831)
修正了因将索引值与未初始化字段进行比较而引起的Valgrind警告。(Bug #58705, Bug #11765713)
作为优化的副作用
或条件
和真正的
, MySQL对于某些子查询忘记了条件所使用的列需要读取,这在调试版本中引发了断言。(Bug #58690, Bug #11765699)条件
还是假的创建触发器
而且下降触发
可以更改存储的例程的预锁定列表,但是例程缓存没有检测到这样的更改,导致例程执行时带有不准确的锁定列表。(Bug #58674, Bug #11765684)在
Item_func_str_to_date: val_str
,对未初始化变量的Valgrind警告被更正。(Bug #58154, Bug #11765216)的代码
过程分析()
有一个缺失DBUG_RETURN
语句,这可能会导致调试版本中的服务器崩溃。(Bug #58140, Bug #11765202)加载数据
错误可能会泄漏I/O缓存内存。(Bug #58072, Bug #11765141)为
加载数据
,多字节字符序列可以被推到一个太小而无法容纳它们的堆栈上。(Bug #58069, Bug #11765139)嵌入式服务器崩溃时
Argc = 0
.(Bug #57931, Bug #12561297)可以在
Item_func_int_val: fix_num_length_and_dec ()
由于几何函数溢出。(Bug #57900, Bug #11764994)如果语句试图在激活元数据锁时升级元数据锁,则会引发断言
刷新表
声明。现在,如果语句试图在这种情况下升级元数据锁,服务器将返回tbl_list
带读锁ER_TABLE_NOT_LOCKED_FOR_WRITE
发送给客户端的错误。(Bug #57649, Bug #11764779)当不需要有序访问时,优化器有时会从存储引擎请求有序访问。(Bug #57601, Bug #11764737)
嵌入客户端在发出错误消息时中止,而不是发出错误消息
三通
命令(\ T
),而包含该文件的目录不存在。这是因为调用了错误的错误处理程序。(Bug #57491, Bug #11764633)file_name
改变事件
可以更改事件状态。(Bug #57156, Bug #11764334)对于与a的外部连接
不是在
子查询中的在哪里
子句的空左操作数不是在
返回的处理方式与字面不同零
操作数。(Bug #56881, Bug #11764086)线程在
等待表元数据
国家不可见performance_schema。线程
或显示配置文件
.(Bug #56475, Bug #11763728)使用准备好的语句,服务器可以尝试在关闭表之后发送结果集元数据。(Bug #56115, Bug #11763413)
与一个会话的优化器结构相关联的表对象可以在传递给另一个会话后关闭,从而提前结束第二个会话的表或索引扫描。(Bug #56080, Bug #11763382)
在某些情况下,
显示警告
当前一个语句失败时返回一个空结果。(Bug #55847, Bug #11763166)已处理的条件(错误或警告)可以在语句的末尾显示为未处理。(Bug #55843, Bug #11763162)
参考:此问题是Bug #23032的回归。
在调试版本中,
Field_new_decimal: store_value ()
缓冲区溢出。(Bug #55436, Bug #11762799)对于一个
InnoDB
表中,删除和添加单个索引ALTER TABLE
语句可能失败。(Bug #54927, Bug #11762345)对于使用SSL连接的客户端,使用
Ssl_cipher_list
状态变量为空,没有显示可能的密码类型。(Bug #52596, Bug #11760210)的mysql客户端有时不能正确地关闭由用户终止的会话控制+ C.(Bug #52515, Bug #11760134)
创建表…就像
对于一个MyISAM
的表定义数据目录
或索引目录
表选项失败,而不是创建一个表,其中省略了这些选项的文档。(Bug #52354, Bug #11759990)在某些角落的空间操作可能会导致服务器崩溃:多边形与零点线;带有动人线条的多边形。(Bug #51979, Bug #11759650, Bug #47429, Bug #11755628)
与
lower_case_table_names = 2
,由数据库名称限定的对象的解析可能失败。(Bug #50924, Bug #11758687)创建表
没有一个引擎
选项在解析而不是执行时确定默认引擎。如果语句是在存储的程序中执行的,并且默认引擎在此期间已被更改,则会导致错误的结果。(Bug #50614, Bug #11758414)在Linux上,mysql客户端构建使用捆绑
libedit
没有阅读~ / .editrc
.(Bug #49967, Bug #11757855)优化器有时处理不正确
有
子句,用于不具有命令
条款。(Bug #48916, Bug #11756928)过程分析()
可能会泄漏内存零
属性一起使用时可能返回不正确的结果限制
条款。(Bug #48137, Bug #11756242)在使用数据库名称限定的名称加载存储例程和删除该数据库之间的竞争条件会导致虚假的错误消息:
表mysql。Proc丢失、损坏或包含坏数据
(Bug #47870, Bug #11756013)当用于升级表时,mysqlcheck(和mysql_upgrade,它调用mysqlcheck)没有升级一些需要修复表的表。特别是升级失败
InnoDB
需要修复的表,使它们处于未升级状态。这是因为:为了解决这个问题,对
检查表…为升级
而且mysqlcheck.因为mysql_upgrade调用mysqlcheck,这些变化也解决了问题mysql_upgrade.检查表…为升级
如果表需要修复,但其存储引擎不支持,则返回不同的错误修理表
:前一:
需要升级表。请做“维修表”tbl_name’”或转储/重载来修复它!
现在:
需要重建表。请执行“ALTER TABLE”tbl_name' FORCE '或转储/重载来修复它!
mysqlcheck识别新的错误并发出
修改表…力
声明。的力
选择ALTER TABLE
被认出却什么也没做;现在它被实现并充当”零”重新构建表的Alter操作。
(Bug #47205, Bug #11755431)
在某些平台上,
第zzz行yyy列的值:xxx不正确
产生的错误加载数据
的值可能不正确打鼾声
.(Bug #46895, Bug #11755168)使用RPM包重新创建的升级
测验
数据库,当DBA删除它时,它是不希望的。(Bug #45415, Bug #11753896)在MySQL 5.1及以上版本中,如果一个表的触发器使用了5.0支持的语法而不是5.1支持的语法,那么这个表就不可用了。现在,表被标记为有损坏的触发器。这些应该被手动删除并重新创建。(Bug #45235, Bug #11753738)
在安装期间试图安装不存在的文件已被纠正。(Bug #43247, Bug #11752142)
一些状态变量在达到最大32位值后滚到零。它们已被更改为64位值。(Bug #42698, Bug #11751727)
显示事件
并不总是显示来自正确数据库的事件。(Bug #41907, Bug #11751148)对于具有多个查询的查询
eq_ref
连接时,优化器花费了过多的时间来开发执行计划。(Bug #41740, Bug #11751026, Bug #58225, Bug #11765274)在嵌入式服务器的FreeBSD 64位版本上,不阻止异常传播到嵌入式应用程序中。(Bug #38965, Bug #11749418)
与
截然不同的
,CONCAT (
参数为时返回不正确的结果col_name
,……)CONCAT ()
是声明了整数数据类型的列,其显示宽度小于列中的值。(例如,如果一个INT (1)
列包含1111
(Bug #4082)