MySQL 8.0中过时的功能(二)

这篇具有很好参考价值的文章主要介绍了MySQL 8.0中过时的功能(二)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  • max_length_for_sort_data系统变量由于优化器的变更而被弃用,因为这个变量已经过时并且没有任何效果。
  • 用于对连接进行压缩的以下传统参数已经被弃用:
    - --compress客户端命令行选项;
    - mysql_options() C API函数的MYSQL_OPT_COMPRESS选项;
    - slave_compressed_protocol系统变量。
  • 使用MYSQL_PWD环境变量来指定MySQL密码已被弃用。
  • 自MySQL 8.0.20版本起,使用VALUES()来访问INSERT ... ON DUPLICATE KEY UPDATE中的新行值已被弃用。应该使用新行和列的别名来替代。
  • 在MySQL中,使用JSON_TABLE()函数时,在ON EMPTY之前指定ON ERROR与SQL标准相反,因此这种语法现已被弃用。从MySQL 8.0.20开始,当尝试这样做时,服务器会打印出警告信息。如果在单个JSON_TABLE()调用中同时指定这两个子句,请确保首先使用ON EMPTY子句。
  • 在表的分区键中,索引前缀的列从来没有被支持;以前,在创建、修改或升级分区表时允许使用这些列,但是分区函数会排除这些列,并且服务器不会发出警告。这种宽松的行为现已被弃用,并可能在未来的MySQL版本中被移除。在其中,如果在分区键中使用任何这样的列,将会拒绝执行CREATE TABLE或ALTER TABLE语句中出现的部分。
  • 从MySQL 8.0.21版本开始,如果在分区键中指定了使用索引前缀的列,则会为每个这样的列生成警告。当因为所有提议的分区键列都有索引前缀而拒绝执行CREATE TABLE或ALTER TABLE语句时,生成的错误信息现在会提供拒绝的确切原因。不论哪种情况,这包括通过使用空的PARTITION BY KEY()子句将用于分区函数的列隐式定义为表的主键的情况。
  • 自MySQL 8.0.22版本起,InnoDB memcached插件已被弃用。预计在未来的MySQL版本中将不再支持该插件。
  • 自MySQL 8.0.26版本起,temptable_use_mmap变量已被弃用。预计在未来的MySQL版本中将不再支持该变量。
  • 自MySQL 8.0.27版本起,BINARY操作符已被弃用,并且您应该预计它将在未来的MySQL版本中被移除。现在使用BINARY会引发警告。取而代之,请使用CAST(... AS BINARY)。
  • 您提到的default_authentication_plugin变量在MySQL 8.0.27版本仍然可用,但与新的authentication_policy系统变量一起使用,并且优先级较低。从MySQL 8.0.27版本开始引入了多因素认证功能,并将authentication_policy作为默认的身份验证策略。尽管default_authentication_plugin变量仍然可用,但未来的MySQL版本中可能会移除该变量支持。建议您在升级或使用更高版本的MySQL时,始终参考官方文档以了解最新的身份验证配置和推荐做法。
  • --abort-slave-event-count和--disconnect-slave-event-count是MySQL测试套件中使用的服务器选项,通常不在生产环境中使用。从MySQL 8.0.29版本开始,这两个选项已被弃用。预计在未来版本的MySQL中将删除这两个选项。建议在升级或使用更高版本的MySQL时,不再使用这两个选项,并参考官方文档获取最新的选项配置和最佳实践。
  • 从MySQL 8.0.29版本开始,myisam_repair_threads系统变量和myisamchk的--parallel-recover选项已被弃用。预计在未来的MySQL版本中将不再支持这两个功能。

    此外,从MySQL 8.0.29版本开始,对于myisam_repair_threads的非默认值(1),会发出警告提示。

  • 以前,MySQL允许在DATE、TIME、DATETIME和TIMESTAMP字面值中包含任意数量的分隔符字符,以及在日期和时间部分之间、前后有任意数量的空白字符的DATETIME和TIMESTAMP字面值。从MySQL 8.0.29版本开始,当字面值包含以下任何内容时,服务器会引发弃用警告:
    - 一个或多个非标准的分隔符字符
    - 多余的分隔符字符
    - 非空格字符(' ', 0x20)的多余空白字符
    - 多余的空格字符
    每个时间值都会发出一次弃用警告,即使它有多个问题。在严格模式下,这个警告不会升级为错误,因此在启用严格模式时,仍然可以成功执行包含这样值的INSERT操作。

    您应该预期这种非标准行为将在未来的MySQL版本中被移除,并立即采取措施确保您的应用程序不依赖于它。确保您的应用程序不依赖于这种非标准行为。

  • 从MySQL 8.0.29版本开始,replica_parallel_type系统变量及其相关的服务器选项--replica-parallel-type已被弃用。从这个版本开始,读取或设置该值会引发弃用警告,并预计在未来的MySQL版本中将删除该功能。

  • 从MySQL 8.0.30版本开始,设置replica_parallel_workers系统变量(或等效的服务器选项)为0已被弃用,并引发警告提示。当您希望一个副本使用单线程处理时,应该使用replica_parallel_workers=1,这将产生相同的结果,但不会引发警告。

  • 从MySQL 8.0.30版本开始,--skip-host-cache服务器选项已被弃用,并预计在未来的MySQL版本中将被移除。请改用host_cache_size系统变量替代。

  • 从MySQL 8.0.30版本开始,用于向后兼容非常早期(5.0.3之前)版本的--old-style-user-limits选项已被弃用。现在使用它会引发警告。您应该预期这个选项将在将来的MySQL版本中被移除。

  • 从MySQL 8.0.30版本开始,innodb_log_files_in_group和innodb_log_file_size变量已被弃用。这些变量的替代方案是innodb_redo_log_capacity变量。

  • 从MySQL 8.0.32版本开始,使用"FULL"作为未引用的标识符已被弃用,因为它是SQL标准中的一个保留关键字。这意味着像CREATE TABLE full (c1 INT, c2 INT)这样的语句现在会引发警告(ER_WARN_DEPRECATED_TO_BE_REMOVED_IDENT_FULL)。为了防止出现这种情况,您需要更改名称,或者像下面这样用反引号(`)将其括起来:
CREATE TABLE `full` (c1 INT, c2 INT);
  • 从MySQL 8.0.32版本开始,使用美元符号($)作为未引用标识符的首字符已被弃用,并会引发警告。这种用法在将来的MySQL版本中有可能被移除。包括用作数据库、表、视图、列或存储过程的名称以及它们的别名的标识符。但是,美元符号仍然可以作为引用标识符的第一个字符。
  • 从MySQL 8.0.34版本开始,binlog_format服务器系统变量已被弃用,并有可能在将来的版本中被移除。改变二进制日志格式也被弃用,预计删除binlog_format后,行级别的二进制日志记录(在MySQL 8.0中已经是默认设置)将成为MySQL唯一支持和使用的二进制日志格式。因此,新安装的MySQL应该只使用行级别的二进制日志记录;现有采用binlog_format=STATEMENT或binlog_format=MIXED日志格式的复制设置应迁移到行级别格式。

    在MySQL 8.0.34及更高版本中,设置或选择binlog_format的值会触发警告。因此,建议按照建议迁移至行级别的二进制日志格式,并遵循官方文档中关于迁移过程的指导。

  • 从MySQL 8.0.34版本开始,mysqlpump客户端工具程序已被弃用,并有可能在将来的MySQL版本中被移除。由于MySQL提供了其他执行数据库导出和备份任务的方式,包括mysqldump和MySQL Shell等工具,因此mysqlpump被认为是冗余的。文章来源地址https://www.toymoban.com/news/detail-803286.html

到了这里,关于MySQL 8.0中过时的功能(二)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL 8.0中新增的功能(五)

    改进哈希连接性能 MySQL 8.0.23重新实现了用于哈希连接的哈希表,从而改进了哈希连接的性能。这项工作包括修复了一个问题(Bug#31516149,Bug#99933),在这个问题中,用于连接缓冲区(join_buffer_size)的分配内存实际上只能使用大约2/3。 新的哈希表通常比旧的更快,并且在对

    2024年01月22日
    浏览(36)
  • MySQL 8.0中移除的功能(一)

    以下项目已经过时并在MySQL 8.0中被删除。如果有替代方案,请务必更新应用程序以使用这些替代方案。 对于在MySQL 8.0中被删除的功能,如果从MySQL 5.7源复制到MySQL 8.0副本时,可能会导致语句失败,或者在源和副本上产生不同的效果。为了避免这样的问题,使用在MySQL 8.0中被删

    2024年02月01日
    浏览(40)
  • mysql 8.0 双密码

    当需要定期修改密码,又不想影响现有连接的情况下,怎么才能做到无缝切换呢 从 MySQL 8.0.14 开始,用户帐户允许拥有双重密码,指定为主密码和辅助密码。双密码功能使得在以下场景中无缝执行凭证更改成为可能: 一个系统有大量MySQL服务器,可能涉及到复制。 多个应用程

    2024年01月19日
    浏览(56)
  • MySQL 8.0 密码策略修改

    2024年02月15日
    浏览(41)
  • MySQL 8.0 修改 Root 密码

    MySQL 是一种常见的关系型数据库,在数据库管理中 MySQL 8.0 版本也是比较常用的版本,但是 MySQL 在初次安装之后默认设置了 root 用户的密码,对于一些情况下需要修改 root 用户密码的操作,需要使用特定的命令和工具。 一、MySQL 修改 Root 密码 MySQL 8.0 版本在安装完成之后,

    2024年01月21日
    浏览(47)
  • mysql 8.0版本更换用户密码

    1、首先 cmd 进入命令行  2、查询版本号 3、看一下数据库 4、使用mysql即可 5、进行查询 user、host 6、修改root的密码 7、刷新权限

    2024年02月11日
    浏览(47)
  • macOS mysql 8.0 忘记密码

    root\\\'@\\\'localhost\\\' 指定了要修改的用户为 root 用户,并且限定了该用户只能从本地主机登录。 IDENTIFIED WITH caching_sha2_password 是指定了验证插件为 caching_sha2_password,一种密码验证插件 macos上 mysql 8.0 重置密码记录

    2024年02月15日
    浏览(35)
  • MySql 8.0 设置允许远程登录授权

    MySQL 连接出现 is not allowed to connect to this MySQL Server错误提示 打开 MySQL8.0 Command Line Client 1. 打开远程连接 注:将Host设置为‘%’表示任意IP都能连接MySQL,也可以将‘%’改为指定ip 2. 关闭远程连接 如果有关闭远程连接的需求,其实我们只需要Host恢复成默认设置(只能本地连接)即

    2024年02月07日
    浏览(36)
  • MySQL5.x与8.0

    目录 大致区别 InnoDB SQL DDL SQL DML Indexes JSON 大致区别 1. 性能:MySQL 8.0 的速度要比 MySQL 5.7 快 2 倍 MySQL 8.0 在以下方面带来了更好的性能:读/写工作负载、IO 密集型工作负载、以及高竞争(\\\"hot spot\\\"热点竞争问题)工作负载 2. NoSQL:MySQL 从 5.7 版本开始提供 NoSQL 存储功能,目前在

    2024年02月19日
    浏览(36)
  • MySql 8.0 配置外网访问

    1.登进MySQL之后 2,输入以下语句,进入mysql库: 3,更新域属性,\\\'%\\\'表示允许外部访问: 4,执行以上语句之后再执行: 5,再执行授权语句: 然后外部就可以通过账户密码访问了。 6,其它说明: 命令本质上的作用是: 将当前user和privilige表中的用户信息/权限设置从mysql库(

    2024年02月16日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包