当前位置: 首页 > news >正文

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 NameNew Name
    INNODB_SYS_COLUMNSINNODB_COLUMNS
    INNODB_SYS_DATAFILESINNODB_DATAFILES
    INNODB_SYS_FIELDSINNODB_FIELDS
    INNODB_SYS_FOREIGNINNODB_FOREIGN
    INNODB_SYS_FOREIGN_COLSINNODB_FOREIGN_COLS
    INNODB_SYS_INDEXESINNODB_INDEXES
    INNODB_SYS_TABLESINNODB_TABLES
    INNODB_SYS_TABLESPACESINNODB_TABLESPACES
    INNODB_SYS_TABLESTATSINNODB_TABLESTATS
    INNODB_SYS_VIRTUALINNODB_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()​ 函数来代替。

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

相关文章:

MySQL 8.0中移除的功能(一)

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

可抓取性和可索引性:它们是什么以及如何影响搜索引擎优化

什么是可抓取性? 网页的可抓取性是指搜索引擎(如谷歌)发现网页的难易程度。 谷歌发现网页的过程称为爬行。它使用称为网络爬虫(也称为机器人或蜘蛛)的计算机程序。这些程序会跟踪网页之间的链接,以发现新…...

Django教程第4章 | Web开发实战-三种验证码实现

系列:Django学习教程 验证码的存在是为了防止系统被暴力破解攻击,几乎每个系统都有验证码。下面将介绍三种生成验证码方式。 您可以根据你自己的需要进行学习。 手动生成验证码 安装绘图依赖,利用的是画图模块 PIL 以及随机模块 random 在后…...

深度探讨 Golang 中并发发送 HTTP 请求的最佳技术

💂 个人网站:【 海拥】【神级代码资源网站】【办公神器】🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交流的小伙伴,请点击【全栈技术交流群】 在 Golang 领域,并发发送 HTTP 请求…...

VUE指令(二)

vue会根据不同的指令,针对不同的标签实现不同的功能。指令是带有 v- 前缀的特殊标签属性。指令的职责是,当表达式的值改变时,将其产生的连带影响,响应式地作用于 DOM。 8、v-for:基于数据循环,多次渲染整个…...

开源对象存储服务器MinIO本地部署并结合内网穿透实现远程访问管理界面

文章目录 前言1. Docker 部署MinIO2. 本地访问MinIO3. Linux安装Cpolar4. 配置MinIO公网地址5. 远程访问MinIO管理界面6. 固定MinIO公网地址 前言 MinIO是一个开源的对象存储服务器,可以在各种环境中运行,例如本地、Docker容器、Kubernetes集群等。它兼…...

【TypeScript】tsconfig.json文件到底是干啥的?作用是什么?

参考学习博文: 掌握tsconfig.json 一、tsconfig.json简介 1、tsconfig.json是什么? TypeScript 使用 tsconfig.json 文件作为其配置文件,当一个目录中存在 tsconfig.json 文件,则认为该目录为 TypeScript 项目的根目录。 通常…...

wagtail的数据模型和渲染

文章目录 前言页面数据模型数据库字段部分搜索部分编辑面板基础面板结构化面板父页面/子页面类型规则页面URLs自定义页面模型的URL模式获取页面实例的URL 模板渲染为页面模型添加模板模板上下文自定义模板上下文更改模板动态选择模板Ajax 模板 内联模型在多个页面类型之间重用内…...

OpenHarmony4.0适配LVDS屏幕驱动

1.概述 手头有一块RK3568的开发板OK3568-C,但是还没有适配OpenHarmony,用的还是LVDS屏幕,但是官方和网上好像还没有OpenHarmony4.0的LVDS屏幕驱动的通用实现,所以决定尝试了一下适配该开发板,完成LVDS屏幕驱动的适配&…...

【playwright】新一代自动化测试神器playwright+python系列课程01-playwright驱动浏览器

Playwright驱动浏览器 安装 Playwright 时,Playwright默认自动安装了三种浏览器(Chromium、Firefox 和 WebKit)。我们可以驱动这三种浏览器中的任意一种。 使用with上下文管理器 启动chromium浏览器 python # # author: 测试-老姜 交流…...

POSIX API与网络协议栈

本文介绍linux中与tcp网络通信相关的POSIX API,在每次调用的时候,网络协议栈会进行的操作与记录。 POSIX API Posix API,提供了统一的接口,使程序能得以在不同的系统上运行。简单来说不同的操作系统进行同一个活动,比…...

互联网加竞赛 基于卷积神经网络的乳腺癌分类 深度学习 医学图像

文章目录 1 前言2 前言3 数据集3.1 良性样本3.2 病变样本 4 开发环境5 代码实现5.1 实现流程5.2 部分代码实现5.2.1 导入库5.2.2 图像加载5.2.3 标记5.2.4 分组5.2.5 构建模型训练 6 分析指标6.1 精度,召回率和F1度量6.2 混淆矩阵 7 结果和结论8 最后 1 前言 &…...

腾讯云 IPv6 解决方案

产品矩阵全覆盖 腾讯云全线产品 All in IPv6;云服务器、私有网络、负载均衡、内容分发、域名解析、DDoS 高防等都已支持 IPv6。 全球 IPv6 基础设施 腾讯云在全球开放25个地理区域,运营53个可用区;目前已有多个地域提供 IPv6 接入能力。 …...

Appium 自动化测试

1.Appium介绍 1,appium是开源的移动端自动化测试框架; 2,appium可以测试原生的、混合的、以及移动端的web项目; 3,appium可以测试ios,android应用(当然了,还有firefoxos)…...

深入浅出Android dmabuf_dump工具

目录 dmabuf是什么? dmabuf_dump工具介绍(基于Android 14) Android.bp dmabuf_dump.cpp 整体架构结构如下 dmabuf_dump主要包含以下功能 前置背景知识 fdinfo 思考 bufinfo Dump整个手机系统的dmabuf Dump某个进程的dmabuf​​​​​​​ 以Table[buff…...

Guava RateLimiter预热模型

本文已收录至我的个人网站:程序员波特,主要记录Java相关技术系列教程,共享电子书、Java学习路线、视频教程、简历模板和面试题等学习资源,让想要学习的你,不再迷茫。 什么是流量预热 我们都知道在做运动之前先得来几组…...

【搭建个人知识库-3】

搭建个人知识库-3 1 大模型开发范式1.1 RAG原理1.2 LangChain框架1.3 构建向量数据库1.4 构建知识库助手1.5 Web Demo部署 2 动手实践2.1 环境配置2.2 知识库搭建2.2.1 数据收集2.2.2 加载数据2.2.3 构建向量数据库 2.3 InternLM接入LangChain2.4 构建检索问答链1 加载向量数据…...

如何看待 Linux 内核邮件列表重启将内核中的 C 代码转换为 C++

如何看待 Linux 内核邮件列表重启将内核中的 C 代码转换为 C 的讨论? 在开始前我有一些资料,是我根据网友给的问题精心整理了一份「Linux的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿…...

springboot网关添加swagger

添加依赖 <dependency><groupId>com.spring4all</groupId><artifactId>swagger-spring-boot-starter</artifactId><version>2.0.2</version></dependency>添加配置类&#xff0c;与服务启动类同一个层级 地址&#xff1a;http…...

代码随想录 Leetcode383. 赎金信

题目&#xff1a; 代码&#xff08;首刷自解 2024年1月15日&#xff09;&#xff1a; class Solution { public:bool canConstruct(string ransomNote, string magazine) {vector<int> v(26);for(auto letter : magazine) {v[letter - a];}for(auto letter : ransomNote…...

国防科技大学计算机基础课程笔记02信息编码

1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制&#xff0c;因此这个了16进制的数据既可以翻译成为这个机器码&#xff0c;也可以翻译成为这个国标码&#xff0c;所以这个时候很容易会出现这个歧义的情况&#xff1b; 因此&#xff0c;我们的这个国…...

CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型

CVPR 2025 | MIMO&#xff1a;支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题&#xff1a;MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者&#xff1a;Yanyuan Chen, Dexuan Xu, Yu Hu…...

【算法训练营Day07】字符串part1

文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接&#xff1a;344. 反转字符串 双指针法&#xff0c;两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...

MODBUS TCP转CANopen 技术赋能高效协同作业

在现代工业自动化领域&#xff0c;MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步&#xff0c;这两种通讯协议也正在被逐步融合&#xff0c;形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明

AI 领域的快速发展正在催生一个新时代&#xff0c;智能代理&#xff08;agents&#xff09;不再是孤立的个体&#xff0c;而是能够像一个数字团队一样协作。然而&#xff0c;当前 AI 生态系统的碎片化阻碍了这一愿景的实现&#xff0c;导致了“AI 巴别塔问题”——不同代理之间…...

【Go语言基础【12】】指针:声明、取地址、解引用

文章目录 零、概述&#xff1a;指针 vs. 引用&#xff08;类比其他语言&#xff09;一、指针基础概念二、指针声明与初始化三、指针操作符1. &&#xff1a;取地址&#xff08;拿到内存地址&#xff09;2. *&#xff1a;解引用&#xff08;拿到值&#xff09; 四、空指针&am…...

深度学习水论文:mamba+图像增强

&#x1f9c0;当前视觉领域对高效长序列建模需求激增&#xff0c;对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模&#xff0c;以及动态计算优势&#xff0c;在图像质量提升和细节恢复方面有难以替代的作用。 &#x1f9c0;因此短时间内&#xff0c;就有不…...

接口自动化测试:HttpRunner基础

相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具&#xff0c;支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议&#xff0c;涵盖接口测试、性能测试、数字体验监测等测试类型…...

MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)

macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 &#x1f37a; 最新版brew安装慢到怀疑人生&#xff1f;别怕&#xff0c;教你轻松起飞&#xff01; 最近Homebrew更新至最新版&#xff0c;每次执行 brew 命令时都会自动从官方地址 https://formulae.…...

苹果AI眼镜:从“工具”到“社交姿态”的范式革命——重新定义AI交互入口的未来机会

在2025年的AI硬件浪潮中,苹果AI眼镜(Apple Glasses)正在引发一场关于“人机交互形态”的深度思考。它并非简单地替代AirPods或Apple Watch,而是开辟了一个全新的、日常可接受的AI入口。其核心价值不在于功能的堆叠,而在于如何通过形态设计打破社交壁垒,成为用户“全天佩戴…...