MySQL 8.0

2025年3月17日 | 阅读 7 分钟

如何在 Windows 上下载 MySQL 8.0?

从下面的链接,您可以轻松下载 MySQL 8 版本。

https://dev.mysqlserver.cn/downloads/installer/ MySQL 8.0

下载后,解压缩并运行 .exe 文件。

然后按照步骤操作

  • 选择安装类型: 选择“完整”安装选项。这将安装 MySQL 的所有功能和产品。要继续,请使用“下一步”按钮。
  • 检查要求: 将测试您的计算机是否满足要求。点击每个项目尝试修复任何不符合先决条件的项,然后再点击“执行”按钮,这将自动安装所有项。“下一步”应被点击。
  • 安装: “安装”选项卡允许您查看已安装的产品。要下载和设置产品,请点击“执行”。安装完成后,点击“下一步”。
  • 产品配置: 查看已配置的产品。要配置 MySQL 服务器,请选择“MySQL Server 8.0.23”。从菜单中选择“下一步”。在“类型和网络”选项卡中,选择“独立 MySQL 服务器/经典 MySQL 复制”后,点击“下一步”按钮。将“开发计算机”作为配置类型,“连接性”作为“TCP/IP”,“端口”作为“3006”。应点击“下一步”。
  • 身份验证方法: 选择“使用强密码加密进行身份验证”。应点击“下一步”。
  • 帐户和角色: 为 root 帐户设置密码。“下一步”应被点击。
  • Windows 服务: “Windows 服务”屏幕用于设置 Windows 服务的服务器启动选项。保持默认配置,然后点击“下一步”。
  • 应用配置:点击“执行”按钮应用服务器设置。完成后,点击“完成”按钮。
  • 产品配置: 检查“产品配置”页面是否已完成。保持默认选择,然后按“下一步”和“完成”按钮完成 MySQL 包的安装。
  • 在下一个屏幕上,您可以选择配置路由器。在点击“完成”按钮后,应点击“下一步”按钮。
  • 连接到服务器: 必须输入 root 密码(来自“帐户和角色”)。要确定连接是否成功,请点击“检查”按钮。点击“下一步”。
  • 应用配置: 选择后,按“执行”按钮。完成后,点击“完成”按钮。
  • 安装完成: “安装完成”屏幕表明安装已完成。从菜单中选择“完成”。

MySQL 的其他旧版本与 MySQL 8.0 的主要区别是什么?

新增数据字典和增强的事务管理功能是 MySQL 8.0 与 MySQL 5.7 及更早版本相比的突出之处。对 MySQL 架构进行的这一根本性修改带来了多项显著的改进和升级。

  • 数据字典: MySQL 8.0 引入了一个现代化的数据字典,取代了用于存储元数据的 MyISAM 基于系统的表。它使用 InnoDB 存储引擎表实现,提高了 MySQL 内部数据结构的可靠性、性能和可管理性,使模式更改更加原子化和事务化。
  • 原子数据定义语言 (DDL): MySQL 8.0 引入了原子 DDL 语句,允许在事务中执行 DDL 操作,简化了模式更改,并确保了一致性。

MySQL 8.0 在可靠性、性能和数据管理能力方面进行了重大改进,为事务支持、公用表表达式 (CTE)、窗口函数和 JSON 增强等其他增强和功能奠定了基础。与旧版本相比,这些变化标志着数据库架构和功能取得了重大进步。

MySQL 8.0 中添加了哪些功能?

  • 原子 DDL 语句: MySQL 8.0 引入了原子数据定义语言 (DDL) 语句,实现了事务模式更改。这种事务性简化了模式修改管理并确保了数据库一致性。DDL 操作可以无缝失败或回滚,从而确保了无缝操作。
  • 数据字典: MySQL 8.0 用基于 InnoDB 的数据字典取代了基于 MyISAM 的系统表,改进了元数据存储和管理。此升级通过优化诸如表、索引和列等数据库对象的存储和检索信息,提高了数据库的可靠性、性能和可伸缩性。
  • 公用表表达式 (CTE): MySQL 8.0 引入了公用表表达式 (CTE),通过在 SELECT 语句中定义临时结果集来简化复杂的 SQL 查询,并通过将复杂逻辑分解为可管理的部分来提高查询的可读性和可维护性。
  • 窗口函数: MySQL 8.0 引入了 ROW_NUMBER()、RANK() 和 DENSE_RANK() 等窗口函数,允许对特定数据分区执行高级分析查询,以获得更详细的数据洞察。
  • JSON 增强: MySQL 8.0 增强了其 JSON 支持,引入了用于结构化查询 JSON 数据的 JSON 表函数,并简化了数据提取、转换和报告等任务。
  • UTF8MB4 作为默认字符集: MySQL 8.0 默认使用 utf8mb4,确保了完整的 Unicode 支持,包括 emoji 字符,无需额外配置,满足了现代应用程序中日益增长的国际字符和 emoji 使用需求。
  • 角色: MySQL 8.0 引入了基于角色的访问控制,允许用户定义具有特定权限的角色。这简化了用户管理和访问控制,允许在数据库中进行更细粒度的权限管理。
  • 性能改进: MySQL 8.0 通过优化数据库引擎以提高各种工作负载下的性能来增强性能,从而实现更快的查询执行和更高的整体数据库性能。
  • InnoDB 改进: MySQL 8.0 改进了 InnoDB 存储引擎,提供了增强的事务支持、可伸缩性和数据完整性,使其对于关键任务应用程序更加健壮。
  • 持久化配置更改: MySQL 8.0 引入了使用 SET PERSIST 和 SET PERSIST_ONLY SQL 语句持久化配置的服务器设置,确保即使在服务器重启后设置仍能保留,从而简化了服务器配置管理。
  • 改进的安全性: MySQL 8.0 通过引入密码策略、用户身份验证改进以及 caching_sha2_password 身份验证插件来增强安全性,从而防范未经授权的访问和数据泄露。
  • 资源管理: MySQL 8.0 增强了资源管理,允许更好地控制内存和 CPU 使用率等系统资源,确保即使在繁重的工作负载下也能实现高效且响应迅速的数据库运行。
  • 地理空间增强: MySQL 8.0 扩展了其功能,支持地理 JSON 对象并增强了空间索引。这些更改使得与地理数据交互和运行空间查询更加容易。
  • 窗口函数: MySQL 8.0 引入了窗口函数,通过允许在查询结果中对当前行相关的行进行计算来促进分析计算。此功能对于数据分析和报告非常有用。
  • 增强的 GROUP BY: MySQL 8.0 在 GROUP BY 子句中引入了 ROLLUP 和 CUBE 扩展,在查询结果中提供多级分组和子总计。这使得构建汇总报告和以不同粒度级别检查数据更加容易。
  • 持久化自增值: MySQL 8.0 提供了在服务器重启之间持久化自增值的功能。此功能消除了重复键冲突的可能性,并确保了自动生成键的一致性。
  • Performance Schema 增强: MySQL 8.0 对 Performance Schema 进行了更改,为数据库管理员提供了增强的监控和性能分析工具。此功能对于发现和解决数据库系统中的性能瓶颈至关重要。

MySQL 8.0 中弃用了哪些功能?

  • 按 KEY 或 HASH 分区: 在 MySQL 8.0 中,不建议使用 KEY 或 HASH 分区,而推荐使用更灵活有效的 RANGE 和 LIST 分区技术。
  • 基于表的 Performance Schema 定时器: 由于发现它们几乎没有实际用途或可能对性能产生负面影响,因此已弃用一些基于表的 Performance Schema 定时器。
  • MyISAM 存储引擎: MyISAM 存储引擎虽然仍在 MySQL 8.0 中包含,但现在被视为已弃用,而更推荐使用 InnoDB 存储引擎,后者是大多数用例的标准和建议引擎。
  • 各种 SQL 模式: 一些 SQL 模式和 SQL 模式组合已被弃用,以标准化和简化 SQL 行为。例如,ANSI_QUOTES SQL 模式已被 ANSI_QUOTES 模式取代。
  • TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP: 建议使用显式触发器来代替 TIMESTAMP 列的默认值 CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP。
  • 查询缓存: MySQL 8.0 弃用并删除了查询缓存功能,该功能用于缓存查询结果。它已被更具可伸缩性且更有效的查询处理技术所取代。
  • 具有 NULL 默认值的分区: 由于数据一致性和性能方面可能存在问题,MySQL 8.0 中不再建议使用具有 NULL 默认值的列进行分区。
  • 旧密码哈希: 为了支持更安全的密码哈希技术,已弃用 OLD_PASSWORD() 和 PASSWORD() 函数。
  • LOAD DATA LOCAL INFILE: 出于安全原因,已弃用 LOAD DATA LOCAL INFILE 语句。它仍然可用,但在使用时应谨慎并采取适当的安全措施。
  • SHOW ENGINE 语法: 在 MySQL 8.0 中,已弃用一些 SHOW ENGINE 语句和相关变量;它们可能在后续版本中被删除。

MySQL 8.0 中删除了哪些功能?

  • 查询缓存: MySQL 8.0 完全删除了查询缓存功能,该功能用于缓存查询结果。之所以做出此决定,是因为在具有大量并发用户的场景中,查询缓存可能会导致性能瓶颈和可伸缩性问题。
  • 基于表的 Performance Schema 定时器: 为了简化 Performance Schema,MySQL 8.0 删除了某些基于表的 Performance Schema 定时器及其相关功能。
  • 不同的 SQL 模式: 为了标准化和简化 SQL 行为,MySQL 8.0 删除了某些过时的 SQL 模式和 SQL 模式组合。例如,ANSI_QUOTES SQL 模式已被 ANSI_QUOTES 模式取代。
  • 旧密码哈希: 在 MySQL 8.0 中,用于密码哈希的 OLD_PASSWORD() 和 PASSWORD() 函数已被删除,因为它们被认为不如当前密码哈希技术安全。
  • 按 KEY 或 HASH 分区: MySQL 8.0 不再支持使用 KEY 或 HASH 技术对表进行分区。建议使用更灵活的分区技术,如 RANGE 或 LIST。
  • 具有 NULL 默认值的分区: 由于数据一致性和性能方面可能存在问题,MySQL 8.0 禁用了使用具有 NULL 默认值的列进行分区。
  • SHOW ENGINE 语法: MySQL 8.0 中删除了几个 SHOW ENGINE 语句和相关变量,并且在更新版本中可能不再支持它们的功能。
  • MyISAM 表的符号链接: MySQL 8.0 删除了符号链接。
  • 对 ndbmemcache 的 NDB Cluster 支持: 在 MySQL 8.0 中,停止了对 MySQL Cluster (NDB Cluster) 的 ndbmemcache 存储引擎的支持。
  • LOAD DATA LOCAL INFILE: 出于安全原因,MySQL 8.0 禁止使用 LOAD DATA LOCAL INFILE 来加载客户端文件中的数据。通过正确的配置和安全防护措施,仍然可以使用它。

下一主题MySQL DBMS