MySQL 8.0中移除的功能(一)

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

以下项目已经过时并在MySQL 8.0中被删除。如果有替代方案,请务必更新应用程序以使用这些替代方案。

对于在MySQL 8.0中被删除的功能,如果从MySQL 5.7源复制到MySQL 8.0副本时,可能会导致语句失败,或者在源和副本上产生不同的效果。为了避免这样的问题,使用在MySQL 8.0中被删除功能的应用程序应进行修订,以避免使用这些功能,并尽可能使用替代方案。

  • innodb_locks_unsafe_for_binlog系统变量已被移除。 READ COMMITTED隔离级别提供了类似的功能。
  • MySQL 8.0.0引入的information_schema_stats变量已被移除,并在MySQL 8.0.3中被information_schema_stats_expiry取代。
    information_schema_stats_expiry用于定义缓存的INFORMATION_SCHEMA表统计信息的过期设置。
  • 与已过时的InnoDB系统表相关的代码已在MySQL 8.0.3中移除。
    基于InnoDB系统表的INFORMATION_SCHEMA视图已被内部系统视图替代,这些视图基于数据字典表。受影响的InnoDB INFORMATION_SCHEMA视图已被重新命名:
    Old Name New Name
    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视图名称的脚本。

  • 以下与账户管理相关的功能已被移除:

    • 使用 ​CREATE USER​代替 ​GRANT​来创建用户。遵循这种做法使 ​NO_AUTO_CREATE_USER​ SQL模式对 ​GRANT​语句无效,因此该模式也已被移除。当在选项文件中的 ​sql_mode​选项中存在 ​NO_AUTO_CREATE_USER​值阻止 ​mysqld​启动时,现在会将错误写入服务器日志。

    • 使用 ​GRANT​语句来修改账户属性,包括身份验证、SSL和资源限制属性,已被移除。相反,在创建账户时,可以使用 ​CREATE USER​语句来设置这些属性,或者使用 ​ALTER USER​语句在创建后修改它们。

    • 在MySQL中,​IDENTIFIED BY PASSWORD 'auth_string'​语法用于 ​CREATE USER​和 ​GRANT​语句已被移除。相反,现在可以使用 ​IDENTIFIED WITH auth_plugin AS 'auth_string'​来替代,在 ​CREATE USER​和 ​ALTER USER​语句中使用此语法,其中的 ​'auth_string'​值采用与指定的插件兼容的格式。

      此外,由于 ​IDENTIFIED BY PASSWORD​语法已被移除,因此 ​log_builtin_as_identified_by_password​系统变量也不再需要,并已被移除。

    • PASSWORD()​函数已在MySQL中移除。这意味着您不能再使用 ​PASSWORD()​函数生成密码哈希值,也不能在 ​SET PASSWORD ... = PASSWORD('auth_string')​等语句中使用它。

    • ​old_passwords​是MySQL中的一个系统变量。 

  • 查询缓存已被移除。这个移除的行为包括以下内容:
    • ​FLUSH QUERY CACHE​和 ​RESET QUERY CACHE​语句被移除。
    • 系统变量 ​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​被移除。
    • 线程状态 ​checking privileges on cached query​、​checking query cache for query​、​invalidating query cache entries​、​sending cached result to client​、​storing result in query cache​、​Waiting for query cache lock​被移除。
    • ​SQL_CACHE​和 ​SQL_NO_CACHE​ SELECT 参数被废弃,并且其行为不再起作用。这些参数预计在未来的MySQL版本中被移除。
    • ​ndb_cache_check_time​系统变量被废弃,并预计在未来的MySQL版本中被移除。
    • ​have_query_cache​系统变量仍然被废弃,并且始终具有NO值,预计在未来的MySQL版本中被移除。
  • 数据字典提供有关数据库对象的信息,因此服务器不再通过检查数据目录中的目录名称来查找数据库。因此,​--ignore-db-dir​选项和 ​ignore_db_dirs​系统变量是多余的,并已被移除。
  • DDL日志,也称为元数据日志,已被移除。从MySQL 8.0.3版本开始,这个功能由数据字典中的 ​innodb_ddl_log​表来处理。
  • ​tx_isolation​和 ​tx_read_only​系统变量已被移除。应使用 ​transaction_isolation​和 ​transaction_read_only​代替。
  • sync_frm​系统变量已被移除,原因是 ​.frm​文件已经过时。
  • secure_auth​系统变量和 ​--secure-auth​客户端选项已被移除。​mysql_options()​ C API函数的 ​MYSQL_SECURE_AUTH​选项也已被移除。
  • `multi_range_count`系统变量已移除。
  • log_warnings​系统变量和 ​--log-warnings​服务器选项已被移除。请使用 ​log_error_verbosity​系统变量代替。
  • sql_log_bin​系统变量的全局作用域已被移除。​sql_log_bin​只具有会话级别的作用域,依赖于访问 ​@@GLOBAL.sql_log_bin​的应用程序需要进行调整。
  • metadata_locks_cache_size​和 ​metadata_locks_hash_instances​系统变量已被移除。 
  • date_format​、​datetime_format​、​time_format​和 ​max_tmp_tables​系统变量已被移除。
  • 这些被弃用的兼容性SQL模式已被移除:DB2、MAXDB、MSSQL、MYSQL323、MYSQL40、ORACLE、POSTGRESQL、NO_FIELD_OPTIONS、NO_KEY_OPTIONS和NO_TABLE_OPTIONS。它们不再能够被分配给sql_mode系统变量,也不能作为mysqldump --compatible选项的允许值使用。

    MAXDB的移除意味着在CREATE TABLE或ALTER TABLE语句中,TIMESTAMP数据类型将被视为TIMESTAMP,而不再被视为DATETIME。

  • 已移除GROUP BY子句中的弃用ASC或DESC限定符。以前依赖于GROUP BY排序的查询可能会产生与之前的MySQL版本不同的结果。为了按照给定的排序顺序进行查询,请提供ORDER BY子句。

  • `EXPLAIN`语句的`EXTENDED`和`PARTITIONS`关键字已被移除。这些关键字是不必要的,因为它们的效果总是启用的。

  • 被移除的加密相关功能如下:
    • `ENCODE()`和`DECODE()`函数。
    • `ENCRYPT()`函数。
    • `DES_ENCRYPT()`和`DES_DECRYPT()`函数,`--des-key-file`选项,`have_crypt`系统变量,`FLUSH`语句的`DES_KEY_FILE`选项以及`HAVE_CRYPT`CMake选项。
    替代被移除的加密函数:对于`ENCRYPT()`函数,考虑改用`SHA2()`进行单向哈希;对于其他情况,考虑改用`AES_ENCRYPT()`和`AES_DECRYPT()`函数。

  • 在MySQL 5.7中,为了使空间函数的命名空间更加一致,几个具有多个名称的空间函数被标记为弃用。目标是,如果一个空间函数执行精确操作,则其函数名应以ST_开头;如果执行基于最小边界矩形的操作,则函数名应以MBR开头。在MySQL 8.0中,这些被弃用的函数被移除,只保留相应的ST_和MBR函数:

    • 这些函数已经被移除,并改用MBR名称代替:`Contains()`, `Disjoint()`, `Equals()`, `Intersects()`, `Overlaps()`, `Within()`。

    • 这些函数已被移除,并改用ST_名称替代: `Area()`, `AsBinary()`, `AsText()`, `AsWKB()`, `AsWKT()`, `Buffer()`, `Centroid()`, `ConvexHull()`, `Crosses()`, `Dimension()`, `Distance()`, `EndPoint()`, `Envelope()`, `ExteriorRing()`, `GeomCollFromText()`, `GeomCollFromWKB()`, `GeomFromText()`, `GeomFromWKB()`, `GeometryCollectionFromText()`, `GeometryCollectionFromWKB()`, `GeometryFromText()`, `GeometryFromWKB()`, `GeometryN()`, `GeometryType()`, `InteriorRingN()`, `IsClosed()`, `IsEmpty()`, `IsSimple()`, `LineFromText()`, `LineFromWKB()`, `LineStringFromText()`, `LineStringFromWKB()`, `MLineFromText()`, `MLineFromWKB()`, `MPointFromText()`, `MPointFromWKB()`, `MPolyFromText()`, `MPolyFromWKB()`, `MultiLineStringFromText()`, `MultiLineStringFromWKB()`, `MultiPointFromText()`, `MultiPointFromWKB()`, `MultiPolygonFromText()`, `MultiPolygonFromWKB()`, `NumGeometries()`, `NumInteriorRings()`, `NumPoints()`, `PointFromText()`, `PointFromWKB()`, `PointN()`, `PolyFromText()`, `PolyFromWKB()`, `PolygonFromText()`, `PolygonFromWKB()`, `SRID()`, `StartPoint()`, `Touches()`, `X()`, `Y()`。

    • GLength()​ 函数已被移除,并改用 ​ST_Length()​ 函数来代替。文章来源地址https://www.toymoban.com/news/detail-790977.html

  • 几何参数不再被允许,并会产生错误。请参考该部分的指南,以迁移查询并停止使用几何参数。
  • 解析器不再将 ​\N​ 视为 SQL 语句中 ​NULL​ 的同义词。请使用 ​NULL​ 代替。该更改不影响使用 ​LOAD DATA​ 或 ​SELECT ... INTO OUTFILE​ 进行的文本文件导入或导出操作,对于这些操作,仍然使用 ​\N​ 表示 ​NULL​。

到了这里,关于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中新增的功能(十)

    XA语句的复制过滤 以前,在使用--replicate-do-db或--replicate-ignore-db时,无论binlog_format的值如何,XA START、XA END、XA COMMIT和XA ROLLBACK语句都会由默认数据库进行过滤,这可能会导致事务被忽略。从MySQL 8.0.31开始,在这种情况下不再对这些语句进行过滤。 复制过滤和权限检查 从MyS

    2024年01月24日
    浏览(30)
  • 从项目中移除CocoaPods

    打开项目文件Show in Finder: 删除本地文件(Podfile、Podfile.lock、Pods文件夹) 删除本地生成的xcworkspace文件 打开项目,在Frameworks文件夹下,删除Pods.xcconfig和libPods.a 进入项目Build Phases,删除Copy Pods Resources、Embed Pods Frameworks和Check Pods Manifest.lock 三项。 因为删除了CocoaPod管理的第三方

    2024年02月12日
    浏览(38)
  • 【探讨】一种应用阵列型光场相机实现图像遮挡物移除的方法

    欢迎关注GZH《光场视觉》 摘要: 针对光路中前景遮挡物影响感兴趣信息采集的问题,本文对应用相机阵列的遮挡物移除算法进行实验研究。用阵列型光场相机采集四维光场数据,然后用数字重聚焦技术进行不同深度的重聚焦,突出目标物细节特征。利用图像重构技术合成子

    2024年01月19日
    浏览(40)
  • 使用C++实现数组中移除元素的算法

    本篇博客将介绍一种使用C++语言实现的数组中移除元素的算法,算法代码基于代码随想录第三章 算法思路: 有两种算法解决该问题,第一种是暴力解法,也就是两个for循环,算法复杂度为n2。第二个算法基于双索引的思想,只需使用一个for循环,算法复杂度为n。 我们使用两

    2024年02月09日
    浏览(41)
  • Leetcode-每日一题【2487.从链表中移除节点】

    给你一个链表的头节点 head 。 对于列表中的每个节点 node ,如果其右侧存在一个具有 严格更大 值的节点,则移除 node 。 返回修改后链表的头节点 head 。 示例 1: 输入: head = [5,2,13,3,8] 输出: [13,8] 解释: 需要移除的节点是 5 ,2 和 3 。 - 节点 13 在节点 5 右侧。 - 节点 13 在

    2024年02月16日
    浏览(43)
  • mysql 8.0 双密码

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

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

    2024年02月15日
    浏览(41)
  • mysql 8.0版本更换用户密码

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

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

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

    2024年02月15日
    浏览(35)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包