相关的文档10bet官方网站 本手册下载 本手册节选

MySQL 5.7参考手册/一般信息MySQL 5.7有什么新功能

1.3 MySQL 5.7更新了什么

本节总结MySQL 5.7中已添加、已弃用和已删除的内容。一个配套的部分列出了MySQL服务器选项和变量,这些变量在MySQL 5.7中已经被添加、弃用或删除;看到章节1.4,“MySQL 5.7中服务器和状态变量和选项的添加、弃用或删除”

新增MySQL 5.7特性

MySQL 5.7新增了以下特性:

  • 安全改进。增加了以下安全增强:

    • 在MySQL 8.0中,caching_sha2_password是默认的身份验证插件。使MySQL 5.7客户端使用验证使用的帐户连接到8.0服务器caching_sha2_password, MySQL 5.7客户端库和客户端程序支持caching_sha2_passwordMySQL 5.7.23版本的客户端认证插件。这提高了MySQL 5.7与MySQL 8.0及更高版本服务器的兼容性。看到第6.4.1.4节“缓存SHA-2可插入认证”

    • 的帐户行mysql.user系统表有一个非空的插件列值,并禁用具有空值的帐户。有关服务器升级说明,请参见第2.11.3节“MySQL 5.7的更改”.类型的帐户也建议dba转换mysql_old_password要使用的身份验证插件mysql_native_password相反,因为支持mysql_old_password被移除。有关帐户升级说明,请参见第6.4.1.3节,“从4.1之前的密码哈希和mysql_old_password插件迁移”

    • MySQL现在允许数据库管理员建立一个密码自动过期的策略:任何使用密码过期的帐户连接到服务器的用户都必须修改密码。有关更多信息,请参见第6.2.11节“密码管理”

    • 管理员可以锁定和解锁帐户,以更好地控制谁可以登录。有关更多信息,请参见第6.2.15节“帐户锁定”

    • 为了更容易支持安全连接,使用OpenSSL编译的MySQL服务器可以在启动时自动生成丢失的SSL和RSA证书和密钥文件。看到第6.3.3.1节“使用MySQL创建SSL和RSA证书和密钥”

      所有服务器,如果没有显式地为SSL配置,如果在数据目录中找到必需的SSL文件,就会尝试在启动时自动启用SSL。看到第6.3.1节“配置MySQL使用加密连接”

      此外,MySQL发行版还包括一个mysql_ssl_rsa_setup可以手动调用该工具来创建SSL和RSA密钥和证书文件。有关更多信息,请参见mysql_ssl_rsa_setup -创建SSL/RSA文件

    • MySQL部署安装mysqld——初始化默认情况下是安全的。实现了以下修改,作为默认的部署特性:

      • 安装过程只创建一个账户,“根”@“localhost”,自动为该帐户生成随机密码,并标记密码过期。MySQL管理员必须以使用随机密码并指定新密码。(服务器将随机密码写入错误日志。)

      • 安装不会创建匿名用户帐户。

      • 安装了没有测验数据库。

      有关更多信息,请参见第2.10.1节“初始化数据目录”

    • MySQL企业版现在提供数据屏蔽和去识别功能。数据屏蔽通过用替换值替换真实值来隐藏敏感信息。MySQL企业数据屏蔽和去识别功能支持使用几种方法屏蔽现有数据,如混淆(删除识别特征)、生成格式化随机数据和数据替换或替换。有关更多信息,请参见第6.5节,“MySQL企业数据屏蔽和去识别”

    • MySQL现在将授予命名管道上的客户机的访问控制设置为Windows上成功通信所需的最小值。较新的MySQL客户端软件可以打开命名管道连接,无需任何额外配置。如果旧的客户端软件不能立即升级,则新的named_pipe_full_access_groupsystem变量可用于为Windows组提供打开命名管道连接的必要权限。完全访问组中的成员应该是受限的和临时的。

  • SQL模式的变化。事务性存储引擎的严格SQL模式(STRICT_TRANS_TABLES)现在默认启用。

    实现的ONLY_FULL_GROUP_BYSQL模式已经变得更加复杂,不再拒绝以前被拒绝的确定性查询。因此,现在默认启用此模式,只禁止包含表达式的非确定性查询,表达式不能保证在组中唯一确定。

    ERROR_FOR_DIVISION_BY_ZERONO_ZERO_DATE,NO_ZERO_IN_DATESQL模式现在已弃用,但默认启用。长期计划是将它们包含在严格的SQL模式中,并在未来的MySQL版本中将其作为显式模式删除。看到MySQL 5.7中的SQL模式更改

    对默认SQL模式的更改会导致默认sql_mode启用以下模式时的系统变量值:ONLY_FULL_GROUP_BYSTRICT_TRANS_TABLESNO_ZERO_IN_DATENO_ZERO_DATEERROR_FOR_DIVISION_BY_ZERONO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

  • 在线ALTER TABLE。ALTER TABLE现在支持一个重命名索引子句重命名索引。更改是在没有表复制操作的情况下进行的。适用于所有存储引擎。看到第13.1.8节,“ALTER TABLE语句”

  • ngram和MeCab全文解析器插件。MySQL提供了一个内置的全文ngram解析器插件,支持中文、日语和韩语(CJK),以及一个可安装的日语MeCab全文解析器插件。

    有关更多信息,请参见第12.10.8节“ngram全文解析器”,第12.10.9节,“MeCab全文解析器插件”

  • InnoDB增强。这些InnoDB添加了增强:

    • VARCHAR列大小可以使用就地增加ALTER TABLE,在这个例子中:

      ALTER TABLE t1 ALGORITHM=INPLACE, CHANGE COLUMN c1 c1 VARCHAR(255);

      只要a所需的长度字节数是正确的VARCHAR列保持不变。为VARCHAR大小为0到255字节的列,需要一个长度字节来对值进行编码。为VARCHAR大小为256字节或更多的列,需要两个长度字节。结果,到位ALTER TABLE只支持增加VARCHAR列大小从0到255字节,或从256字节到更大的大小。就地ALTER TABLE不支持增加的大小VARCHAR列从小于256字节到大于或等于256字节。在这种情况下,所需长度字节的数量从1变为2,这仅由表副本(算法=复制).

      减少VARCHAR大小使用就地ALTER TABLE不支持。减少VARCHARSize需要表副本(算法=复制).

      有关更多信息,请参见第14.13.1节“在线DDL操作”

    • DDL的性能InnoDB的优化改进了临时表创建表删除表截断表,ALTER TABLE语句。

    • InnoDB临时表元数据不再存储到InnoDB系统表。取而代之的是一张新表,INNODB_TEMP_TABLE_INFO,为用户提供活动临时表的快照。该表包含元数据,并报告在给定范围内活动的所有用户和系统创建的临时表InnoDB实例。该表是在第一次选择语句对它运行。

    • InnoDB现在支持mysql支持的空间数据类型。在此版本发布之前,InnoDB将空间数据存储为二进制数据。保持基础数据类型,但空间数据类型现在映射到新的InnoDB内部数据类型,DATA_GEOMETRY

    • 现在,所有未压缩的表空间都有一个单独的表空间InnoDB临时表。新的表空间总是在服务器启动时重新创建,并且位于DATADIR默认情况下。新添加的配置文件选项,innodb_temp_data_file_path,允许用户定义临时数据文件路径。

    • innochecksum通过几个新选项和扩展功能增强了功能。看到第4.6.1节,“innochecksum -离线InnoDB文件校验和工具”

    • 一种新的非重做撤销日志,用于普通临时表和压缩临时表及相关对象,现在驻留在临时表空间中。有关更多信息,请参见第14.6.7节“撤销日志”

    • InnoDB缓冲池转储和加载操作得到了增强。一个新的系统变量,innodb_buffer_pool_dump_pct,允许您指定要读取和转储的每个缓冲池中最近使用页面的百分比。执行其他I/O活动时InnoDB后台任务,InnoDB方法限制每秒缓冲池加载操作的次数innodb_io_capacity设置。

    • 支持已添加到InnoDB用于全文解析器插件。有关全文解析器插件的信息,请参见全文解析器插件而且编写全文解析器插件

    • InnoDB支持多个页面清理线程,用于从缓冲池实例刷新脏页面。一个新的系统变量,innodb_page_cleaners,用于指定页清理器线程数。的默认值。1维护前面的配置,其中有一个页面清理器线程。该增强建立在MySQL 5.6中完成的工作基础上,它引入了一个单一的页面清理器线程,将缓冲池刷新工作从InnoDB掌握线程。

    • 在线DDL支持扩展到以下常规和分区操作InnoDB表:

    • Linux下的Fusion-io NVM文件系统提供原子写能力,这使得InnoDBdoublewrite缓冲多余的。的InnoDB系统表空间文件的Doublewrite缓冲区自动禁用(ibdata文件)位于支持原子写的Fusion-io设备上。

    • InnoDB支持移动式表空间功能分区InnoDB表和个人InnoDB表分区。这种增强简化了分区表的备份过程,并支持在MySQL实例之间复制分区表和单个表分区。有关更多信息,请参见第14.6.1.3节“导入InnoDB表”

    • 通过innodb_buffer_pool_size参数是动态的,允许您在不重新启动服务器的情况下调整缓冲池的大小。调整大小操作,包括将页面移动到内存中的新位置,是按块执行的。块大小可以使用newinnodb_buffer_pool_chunk_size配置选项。可以使用新的控件监视调整大小的过程Innodb_buffer_pool_resize_status状态变量。有关更多信息,请参见在线配置InnoDB缓冲池大小

    • 多线程页面清理器支持(innodb_page_cleaners)扩展到停机和恢复阶段。

    • InnoDB支持空间数据类型的索引空间索引,包括使用ALTER TABLE……算法=原地网上运作(添加空间索引).

    • InnoDB在创建或重建索引时执行批量加载。这种创建索引的方法称为排序的索引构建.这种增强提高了索引创建的效率,也适用于全文索引。一个新的全局配置选项,innodb_fill_factor,定义在排序索引构建过程中填充数据的每个页面上的空间百分比,其余空间为未来的索引增长保留。有关更多信息,请参见第14.6.2.3节“排序索引构建”

    • 新的日志记录类型(MLOG_FILE_NAME)用于标识自上一个检查点以来被修改的表空间。这种增强简化了崩溃恢复期间的表空间发现,并消除了在重做日志应用程序之前对文件系统的扫描。有关此增强的好处的更多信息,请参见在崩溃恢复期间发现表空间

      这个增强改变了重做日志的格式,要求在升级到MySQL 5.7.5或从MySQL 5.7.5降级之前,必须彻底关闭MySQL。

    • 可以截断驻留在undo表空间中的undo日志。方法启用此特性innodb_undo_log_truncate配置选项。有关更多信息,请参见删除撤消表空间

    • InnoDB支持本地分区。在此之前,InnoDB依赖于ha_partition处理程序,它为每个分区创建一个处理程序对象。对于本机分区,一个分区InnoDB表使用单个分区感知的处理程序对象。这种增强减少了分区所需的内存量InnoDB表。

      从MySQL 5.7.9开始,mysql_upgrade查找并尝试升级分区InnoDB类创建的表ha_partition处理程序。同样在MySQL 5.7.9及更高版本中,您可以在mysql客户端使用ALTER TABLE……升级分区

    • InnoDB支持创建通用表空间创建表空间语法。

      创建表空间”tablespace_name“添加数据文件”file_name.ibd' [FILE_BLOCK_SIZE = n]

      通用表空间可以在MySQL数据目录之外创建,能够保存多个表,并支持所有行格式的表。

      将表添加到通用表空间创建表tbl_name...表空间(=)tablespace_nameALTER TABLEtbl_name表空间(=)tablespace_name语法。

      有关更多信息,请参见第14.6.3.3节,“通用表空间”

    • 动态替换紧凑的的隐式默认行格式InnoDB表。一个新的配置选项,innodb_default_row_format,指定默认的InnoDB行格式。有关更多信息,请参见定义表的行格式

    • 从MySQL 5.7.11开始,InnoDB支持每表文件表空间的静止数据加密。参数来启用加密加密类时的选项InnoDB表格该特性依赖于密匙环加密密钥管理插件。有关更多信息,请参见第6.4.4节“MySQL Keyring”,第14.14节“InnoDB数据静止加密”

    • 从MySQL 5.7.24开始,zlib库与MySQL绑定的版本从1.2.3版本提升到1.2.11版本。MySQL在zlib库的帮助下实现压缩。

      如果你使用InnoDB压缩表,请参阅第2.11.3节“MySQL 5.7的更改”相关升级影响。

  • JSON支持。从MySQL 5.7.8开始,MySQL支持本机JSON类型。JSON值不作为字符串存储,而是使用内部二进制格式,允许对文档元素进行快速读取访问。JSON文档存储在JSON每当插入或更新列时,都会自动验证它们,无效的文档会产生错误。JSON文档在创建时是规范化的,可以使用大多数比较操作符进行比较,例如<< =>> =<>! =,< = >;获取有关支持的操作符以及优先级和MySQL在比较时遵循的其他规则的信息JSON值,请参阅JSON值的比较和排序

    MySQL 5.7.8还引入了许多用于使用的函数JSON值。这些函数包括下面列出的:

    在MySQL 5.7.9及以上版本中,可以使用->路径作为速记JSON_EXTRACT (路径.这作为列的别名工作,只要在SQL语句中可以出现列标识符,包括在哪里命令,集团条款。这包括选择更新删除创建表,以及其他SQL语句。左边一定是aJSON列标识符(而不是别名)。右边是一个带引号的JSON路径表达式,它根据作为列值返回的JSON文档求值。

    MySQL 5.7.22增加了以下JSON函数:

    • 两个JSON聚合函数JSON_ARRAYAGG ()而且JSON_OBJECTAGG ()JSON_ARRAYAGG ()接受列或表达式作为参数,并将结果聚合为单个参数JSON数组中。该表达式可以求值为任何MySQL数据类型;这并不一定是JSON价值。JSON_OBJECTAGG ()接受两个列或表达式,它将其解释为键和值;它将结果作为单个返回JSON对象。有关更多信息和示例,请参见第12.20节“聚合函数”

    • JSON实用函数JSON_PRETTY (),它输出一个现有的JSON易于阅读的格式的值;每个JSON对象成员或数组值都打印在单独的一行上,子对象或数组相对于其父对象有2个空格。

      此函数还适用于可以解析为JSON值的字符串。

      另请参阅第12.18.6节“JSON实用函数”

    • JSON实用函数JSON_STORAGE_SIZE (),它在任何部分更新之前返回JSON文档的二进制表示所使用的存储空间(以字节为单位)(参见上一项)。

      该函数还接受JSON文档的有效字符串表示。对于这样的值,JSON_STORAGE_SIZE ()返回在转换为JSON文档后其二进制表示所使用的空间。对于包含JSON文档的字符串表示形式的变量,JSON_STORAGE_FREE ()返回零。如果函数的(非空)参数不能被解析为有效的JSON文档,则两个函数都会产生错误如果论证是

      有关更多信息和示例,请参见第12.18.6节“JSON实用函数”

    • 要符合的JSON合并函数RFC 7396JSON_MERGE_PATCH (),当对2个JSON对象使用时,将它们合并为一个JSON对象,该对象的成员为以下集合的并集:

      • 第一个对象的每个成员,但第二个对象中没有具有相同键的成员。

      • 第二个对象的每个成员,其中没有与第一个对象具有相同键的成员,且其值不是JSON文字。

      • 每个成员都有一个存在于两个对象中的键,其值在第二个对象中不是JSON文字。

      作为这项工作的一部分JSON_MERGE ()函数已重命名JSON_MERGE_PRESERVE ()JSON_MERGE ()继续被识别为JSON_MERGE_PRESERVE ()在MySQL 5.7,但现在已弃用,并将在MySQL的未来版本中删除。

      有关更多信息和示例,请参见第12.18.4节“修改JSON值的函数”

    看到第12.18.3节“搜索JSON值的函数”,以获取更多有关->而且JSON_EXTRACT ().有关MySQL 5.7中JSON路径支持的信息,请参见搜索和修改JSON值.另请参阅为生成的列建立索引以提供JSON列索引

  • 系统和状态变量。系统和状态变量信息现在可以在性能模式表中获得,优先使用INFORMATION_SCHEMA表来获取这些变量。这也影响了操作显示变量而且显示状态语句。的值show_compatibility_56系统变量影响系统和状态变量语句和表产生的输出和所需的特权。关于该变量的详细描述请参见第5.1.7节,“服务器系统变量”

    请注意

    的默认值show_compatibility_56.需要5.6行为的应用程序应该将此变量设置为直到它们被迁移到系统变量和状态变量的新行为。看到第25.20节“迁移到性能模式系统和状态变量表”

  • 系统模式。MySQL发行版现在包含sys模式,它是一组对象,帮助dba和开发人员解释Performance schema收集的数据。sys模式对象可用于典型的调优和诊断用例。有关更多信息,请参见26章,MySQL系统模式

  • 条件处理。MySQL现在支持堆叠诊断区域。当推入诊断区域堆栈时,第一个(当前)诊断区域将成为第二个(堆叠)诊断区域,并创建一个新的当前诊断区域作为其副本。在条件处理程序中,执行的语句修改新的当前诊断区域,但是得到堆叠诊断可用于检查堆叠诊断区域,以获取有关导致处理程序激活的条件的信息,而不依赖于处理程序本身中的当前条件。(以前,只有一个诊断区域。为了检查处理程序中的处理程序激活条件,在执行任何可能更改它的语句之前,有必要检查这个诊断区域。)看到第13.6.7.3节,“GET DIAGNOSTICS语句”,第13.6.7.7节“MySQL诊断区”

  • 优化器。添加了以下优化器增强:

  • 触发器。以前,对于每个触发事件的组合,一个表最多只能有一个触发器(插入更新删除)和行动时间(之前).此限制已被取消,并允许多个触发器。有关更多信息,请参见第23.3节,“使用触发器”

  • 日志记录。添加了以下日志增强功能:

    • 以前,在Unix和类Unix系统上,MySQL支持将服务器错误日志发送到syslog是通过mysqld_safe捕获服务器错误输出并将其传递给syslog.服务器现在包含本机syslog支持,它已经扩展到包括Windows。有关将服务器错误输出发送到的详细信息syslog,请参阅第5.4.2节“错误日志”

    • mysql客户端现在有一个——syslog选项,该选项使交互式语句被发送到系统syslog设施。对于匹配默认值的语句,日志记录将被抑制忽略模式列表(“密码*确定*:* *”方法指定的任何模式的匹配语句——histignore选择。看到章节4.5.1.3,“mysql客户端日志”

  • 生成的列。MySQL现在支持在中生成列的规范创建表而且ALTER TABLE语句。从创建列时指定的表达式计算生成列的值。生成的列可以是虚拟的(计算的)在飞行中读取行时)或存储(插入或更新行时计算)。有关更多信息,请参见第13.1.18.7节“创建表和生成的列”

  • mysql客户端。在此之前,控制+ C在mysql中,如果有当前语句则中断,如果没有则退出mysql。现在控制+ C如果存在当前语句,则中断当前语句,否则取消任何部分输入行,但不退出。

  • 使用mysqlbinlog重写数据库名称。数据库的重命名方法为mysqlbinlog从使用基于行的格式写入的二进制日志中读取时,现在支持使用——rewrite-db选项在MySQL 5.7.1中添加。

    该选项使用格式——rewrite-db = 'dboldname->dbnewname.通过多次指定该选项,可以实现多个重写规则。

  • 带有分区表的HANDLER。处理程序语句现在可以与用户分区表一起使用。这样的表可以使用任何可用的分区类型(参见第22.2节“分区类型”).

  • 分区表的索引条件下推支持。类对分区表的查询InnoDBMyISAM存储引擎可以采用MySQL 5.6中引入的索引条件下推优化。看到第8.2.1.5节“索引条件下推优化”,以查询更多资料。

  • 没有验证支持ALTER TABLE…交换分区。从MySQL 5.7.5开始,ALTER TABLE……交换分区语法包含一个可选的{有|没有}验证条款。当没有验证是指定的,ALTER TABLE……交换分区在与分区交换填充表时,不执行逐行验证,从而允许数据库管理员负责确保行在分区定义的边界内。与验证是默认行为,不需要显式指定。有关更多信息,请参见第22.3.3节“与表交换分区和子分区”

  • 源转储线程改进。对源转储线程进行了重构,以减少锁争用并提高源吞吐量。在MySQL 5.7.2之前,转储线程在读取事件时锁定二进制日志;在MySQL 5.7.2及更高版本中,这个锁只在读取最后一个成功写入事件末尾的位置时被持有。这意味着多个转储线程现在能够并发地从二进制日志文件中读取,并且转储线程现在能够在客户机写入二进制日志时进行读取。

  • 字符集的支持。MySQL 5.7.4包含一个gb18030支持中国标准GB18030字符集的字符集。有关MySQL字符集支持的更多信息,请参见第十章,字符集,排序规则,Unicode

  • 修改复制源不停止SLAVE。在MySQL 5.7.4及以后版本中,严格要求执行停止奴隶在发出任何改变主语句删除。的行为而不是取决于副本是否停止改变主现在取决于复制SQL线程和复制I/O线程的状态;这些线程中的哪一个现在停止或运行,决定了可以或不能使用的选项改变主在一个给定的时间点。作出这一决定的规则如下:

    • 如果SQL线程停止,则可以执行改变主的任意组合RELAY_LOG_FILERELAY_LOG_POS,MASTER_DELAY选项,即使副本I/O线程正在运行。当I/O线程运行时,此语句不能使用其他选项。

    • 如果I/O线程停止,则可以执行改变主使用此语句的任何选项(以任何允许的组合)除了RELAY_LOG_FILERELAY_LOG_POS,或MASTER_DELAY,即使SQL线程正在运行。当I/O线程正在运行时,这三个选项可能不会被使用。

    • SQL线程和I/O线程在发出之前都必须停止把master改为…MASTER_AUTO_POSITION = 1

    您可以使用以下命令检查副本SQL和I/O线程的当前状态显示奴隶状态

    如果正在使用基于语句的复制和临时表,则可以使用改变主声明后停止奴隶语句在副本上保留临时表。作为这一系列改进的一部分,现在无论何时都会发出警告改变主发行后停止奴隶使用基于语句的复制时Slave_open_temp_tables保持大于0。

    有关更多信息,请参见第13.4.2.1节“CHANGE MASTER TO Statement”,第16.3.7节,“故障转移期间切换源”

  • 测试套件中。MySQL测试套件现在使用InnoDB默认存储引擎。

  • 多源复制现在是可能的。MySQL多源复制增加了从多个源复制到一个副本的能力。MySQL多源复制拓扑可用于将多台服务器备份到一台服务器,合并表碎片,并将多台服务器的数据合并到一台服务器。看到第16.1.5节“MySQL多源复制”

    作为MySQL多源复制的一部分,已经添加了复制通道。复制通道使副本能够打开多个连接进行复制,每个通道都是到源的连接。看到第16.2.2节“复制通道”

  • 组复制性能模式表。MySQL 5.7向性能模式添加了许多新表,以提供关于复制组和通道的信息。其中包括以下表格:

    所有这些表都是在MySQL 5.7.2中添加的,除了replication_group_members而且replication_group_member_stats,这是在MySQL 5.7.6中添加的。有关更多信息,请参见第25.12.11节“性能模式复制表”

  • 组复制SQL。MySQL 5.7.6中增加了以下语句来控制组复制:

    有关更多信息,请参见第13.4.3节“控制组复制的SQL语句”

MySQL 5.7中已弃用的特性

以下特性在MySQL 5.7中已弃用,并可能在未来的系列中删除。在显示替代方案的地方,应该更新应用程序以使用它们。

对于使用MySQL 5.7中已被移除的特性的应用程序,从MySQL 5.7源复制到更高系列副本时,语句可能会失败,或者可能对源和副本产生不同的影响。为了避免这些问题,应该修改使用5.7中弃用的特性的应用程序以避免这些问题,并在可能的情况下使用替代方案。

MySQL 5.7中移除的特性

以下项目是过时的,并已在MySQL 5.7中删除。在显示替代方案的地方,应该更新应用程序以使用它们。

对于使用了MySQL 5.7中删除的特性的MySQL 5.6应用程序,当从MySQL 5.6源复制到MySQL 5.7副本时,语句可能会失败,或者可能对源和副本产生不同的影响。为了避免这样的问题,使用MySQL 5.7中删除的特性的应用程序应该修改以避免这些问题,并在可能的情况下使用替代方案。

  • 删除了对使用较旧的4.1以前的密码哈希格式的密码的支持,这涉及到以下更改。使用不再支持的特性的应用程序必须被修改。

    • mysql_old_password认证插件被移除。使用此插件的帐户在启动时被禁用,服务器写入未知的插件消息发送到错误日志。有关升级使用此插件的帐户的说明,请参阅第6.4.1.3节,“从4.1之前的密码哈希和mysql_old_password插件迁移”

    • ——secure-auth选项到服务器和客户端程序是默认的,但现在是空的。弃用;希望在未来的MySQL版本中删除它。

    • ——skip-secure-auth选项不再受支持,使用它会产生错误。

    • secure_auth系统变量只允许值为1;不再允许值为0。

    • old_passwords系统变量,值为1(产生4.1之前的散列)不再被允许。

    • OLD_PASSWORD ()函数删除。

  • 在MySQL 5.6.6中,2位数(2)数据类型已弃用。支持(2)现在已经删除。升级到MySQL 5.7.5或更高版本后,任何剩下的2位数(2)列必须转换为4位数字一年列重新变得可用。有关转换策略,请参见第11.2.5节,“两位数年份(2)的限制和向四位数年份的迁移”.例如,运行mysql_upgrade后升级。

  • innodb_mirrored_log_groups系统变量。唯一支持的值是1,所以它没有任何用途。

  • storage_engine系统变量。使用default_storage_engine代替。

  • thread_concurrency系统变量。

  • timed_mutexes系统变量。它没有任何作用,也没有任何效果。

  • 忽略条款ALTER TABLE

  • 插入延迟不再受支持。服务器识别但忽略延迟关键字,将插入作为非延迟插入处理,并生成ER_WARN_LEGACY_SYNTAX_CONVERTED警告。(不再支持INSERT DELAYED。语句被转换为INSERT。)同样的,取代延迟作为非延迟替换处理。你应该预料到延迟关键字将在未来的版本中删除。

    此外,一些延迟相关选项或功能被删除:

  • 在Windows上使用数据库符号链接.sym文件已被删除,因为它是多余的,使用本机符号链接支持可用mklink.任何.sym文件符号链接现在被忽略,应该用使用创建的符号链接替换mklink.看到第8.12.3.3节“在Windows上为数据库使用符号链接”

  • 未使用的——basedir——datadir,——tmpdir选项mysql_upgrade被移除。

  • 以前,程序选项可以完整地指定,也可以作为任何明确的前缀指定。例如,——压缩可给予选择权,mysqldump作为——压缩机,但不是——广告样稿因为后者是模糊的。不再支持选项前缀;只接受完整选项。这是因为当为程序实现新选项时,前缀可能会导致问题,而当前没有歧义的前缀将来可能会变成歧义。这一变化的一些影响:

    • ——key-buffer选项现在必须指定为——key-buffer-size

    • ——skip-grant选项现在必须指定为——skip-grant-tables

  • 显示引擎innodb互斥锁输出被移除。的视图可以生成可比的信息性能模式表。

  • InnoDB表空间监视和InnoDB表监视器已被删除。对于表监视器,可以从InnoDBINFORMATION_SCHEMA表。

  • 用于启用和禁用标准的特殊命名表InnoDB监控和InnoDB锁监控(innodb_monitor而且innodb_lock_monitor)被删除,代之以两个动态系统变量:innodb_status_output而且innodb_status_output_locks.有关其他信息,请参见第14.18节“InnoDB监控器”

  • innodb_use_sys_malloc而且innodb_additional_mem_pool_size删除了MySQL 5.6.3中已弃用的系统变量。

  • msql2mysqlmysql_convert_table_formatmysql_find_rowsmysql_fix_extensionsmysql_setpermissionmysql_waitpidmysql_zapmysqlaccess,mysqlbug实用工具。

  • mysqlhotcopy实用程序。备选方案包括,mysqldump和MySQL企业备份。

  • binary-configure.sh脚本。

  • INNODB_PAGE_ATOMIC_REF_COUNTCMake选择删除。

  • innodb_create_intrinsic选择删除。

  • innodb_optimize_point_storage选项和相关的内部数据类型(DATA_POINT而且DATA_VAR_POINT)被移除。

  • innodb_log_checksum_algorithm选择删除。