MySQL教程:MySQL 8入门

MySQL仍然是现代应用程序编程堆栈中最常见,最一致的元素之一。 如果您想要为您的应用程序或服务使用数据库,并且您的需求相当通用,那么MySQL是简单的默认值之一。 它被广泛使用并且易于理解,因此在为特定应用程序部署MySQL时,您可以汲取大量社区知识和经验。

最新的主要版本MySQL 8修复了MySQL的一些长期存在的问题-重大更改足以要求对小数点左边进行修订。

[RDBMS正在向外扩展: 评论:Google Cloud Spanner将SQL扩展到NoSQL规模 | MySQL对抗:Amazon Aurora超越了Google Cloud SQL | 评论:ClustrixDB可以向外扩展 | 评论:DeepSQL超越了Amazon Aurora ]

在本文中,我们将逐步介绍启动标准MySQL 8服务器安装所需的基本步骤。 在此过程中,我们将注意在全新安装或从以前的MySQL安装升级时需要记住的设置。

请注意,本文中的讨论重点是MySQL 8的社区开源版本,而不是企业版。 企业版具有更高级的功能,只有通过商业许可才能使用。

在哪里下载MySQL 8

Oracle为MySQL 8维护自己的下载站点 。请注意,每个操作系统的下载都存储在不同的页面上。 您需要从“选择操作系统”下拉菜单中选择一个操作系统。 否则,该网站将默认为通过您的浏览器检测到的操作系统提供下载。

如何安装MySQL 8

设置MySQL的过程因目标操作系统而异。

  • Microsoft WindowsMacOS用户可以下载并运行基于GUI的安装程序。 这将引导用户完成设置过程,并为最常用的配置选项提供默认设置。
  • Linux用户可以下载Oracle提供的通用二进制文件,也可以通过其Linux发行版的软件包管理系统安装MySQL。

在Linux上安装MySQL时要记住以下几点:

  • 对于给定的Linux发行版,默认软件存储库中可能没有MySQL或至少是其最新版本。 例如,在Fedora Linux上,您可能需要手动将MySQL存储库添加到程序包管理系统,然后从该存储库安装。
  • 除非您完全卸载以前的版本,否则不应从使用通用Linux二进制文件切换到发行版的程序包管理器提供的版本。 (反之亦然。)最好的选择是,为了保持一致性,尽可能使用相同的分配路径。

MySQL还可以作为Docker映像使用 。 通过将命令行标志传递给容器,可以更改MySQL中许多最常见的选项。 如果需要更精细的控制,则可以创建一个自定义配置文件并将其传递到容器。 (如果您是Docker专家 ,则可以通过添加层来进一步定制容器映像。)

Oracle针对许多平台提供的另一个选项是不带安装程序的通用二进制归档文件。 必须手动创建它,主要是通过创建和编辑其配置文件。 优点是,以后只需删除二进制文件及其支持文件,就很容易删除整个内容。

从先前版本升级到MySQL 8

如果您要从早期版本的MySQL迁移到MySQL 8,则可以在两种用于升级的常规策略之间进行选择。 请注意,仅支持从MySQL 7的GA版本(最好是最新的GA版本)升级。 不能保证从非GA版本的MySQL 7和早期版本的MySQL(例如MySQL 6)进行升级。

无论哪种情况,都应确保要升级的数据库不存在挥之不去的兼容性问题 。 另外,请注意特定于您所运行平台升级方法 ,因为Windows或MacOS系统的升级过程不会像Linux进程那样。

配置MySQL 8

MySQL的大量配置选项可能会让人不知所措,但幸运的是,在安装或升级过程的初始阶段并不需要许多配置选项。

编辑MySQL 8配置文件

MySQL 8的Microsoft Windows和MacOS图形安装程序将引导用户逐步配置最重要的选项,并自动选择明智的默认值。 这些选择记录在MySQL使用的配置文件中。 Linux用户也将拥有一个基本配置文件,其中包含一些自动生成的默认值,尽管在Linux上默认添加的设置不多。

要找出您的MySQL配置文件所在的位置,请运行mysql —help从外壳程序中获取帮助,并查找以下行:“以给定顺序从以下文件中读取默认选项。” 配置文件及其位置将在此处列出。

不幸的是,MySQL配置文件中所有选项的默认值未在配置文件本身中列出。 您可以在文件的文档中找到它们。

减轻头痛的一种好方法是使用大多数MySQL安装附带的MySQL Workbench应用程序来编辑选项文件。 MySQL Workbench为您提供了一个选项卡式GUI,列出了文件中每个可能的设置以及每个设置的作用说明。 MySQL Workbench还会通过不小心在不属于该文件的位置插入一个换行符来使配置文件更混乱。

最初,MySQL Workbench没有向特定的MySQL连接注册的选项文件。 要添加选项文件,请按照下列步骤操作:

  1. 在MySQL Workbench主页中,右键单击要为其添加选项文件的实例连接,然后选择“编辑连接”。
  2. 在“系统配置文件”选项卡下,在“配置文件”行中填写选项文件的完整路径。
  3. 单击“测试连接”以确保一切正常。
  4. 下次打开该连接时,可以通过“实例|实例”从左侧树菜单中编辑选项文件设置。 选项文件。”

设置MySQL 8的root密码

如果需要特别注意MySQL设置的一部分,那就从一开始就为服务器设置根密码,以防止安全灾难。

MySQL 8的Windows和MacOS安装程序会在安装过程中提示用户输入root密码。 某些MySQL 8的Linux安装程序(例如Ubuntu的基于apt-get的安装)允许用户提供root用户MySQL密码。

在其他情况下,例如使用Fedora的yumdnf安装程序时,将随机设置root密码并在MySQL的错误日志中回显。 可以使用命令sudo grep 'temporary password' /var/log/mysqld.log 。 该密码应尽快更改。 确保至少用同样长且复杂的密码替换它。

使用MySQL 8的新身份验证方法

如果要在Linux上使用MySQL Workbench(建议使用,因为它使使用MySQL更加方便),建议您注意MySQL 8中的另一个配置选项。

在安装MySQL 8时,将为您提供使用新的SHA-256密码身份验证方法的选项。 此方法比传统的“本机密码”方法安全得多,因此建议将其作为新安装的默认方法。

但是,新方法的主要缺点是与最新版本的MySQL客户端软件(尤其是MySQL Workbench)不兼容。

此外,还有一个附加警告:通过默认的安装路径,并非所有Linux版本都提供最新版本的客户端软件。 换句话说,如果您从该操作系统的MySQL存储库中,例如在Ubuntu 18.04上安装了全新的MySQL 8,则随附的MySQL Workbench副本将不支持SHA-256身份验证!

解决此障碍的方法有几种:

  • 下载 MySQL Workbench 的开发版本 。 这完全取决于是否已为您的操作系统构建了开发版本,但是大多数Linux似乎都具有最新的开发二进制版本。 通常,这是最简单的方法,与使用MySQL自己的安全设置进行修改相比,更新Workbench的潜在麻烦要小。
  • 如果只允许从localhost连接到MySQL,则可以避免使用SHA-256身份验证,并且不会在安全性方面造成太大损失。 这不一定是您的永久解决方案; 您可以使用旧版连接协议,直到获得系统的最新客户端软件版本,然后更改为新的身份验证方法 。 请注意,这意味着您必须在MySQL的配置文件中更改身份验证方法, 更改MySQL用户帐户以使其匹配。
  • 从头开始构建客户端软件。 这是最费力的解决方法,因此仅建议没有其他选择的人使用。 我们绝大多数人都不必这样做。

MySQL 8的主要配置选项

MySQL 8的绝大多数选项都不需要设置。 无论是使用GUI安装向导还是手动编辑配置文件,都应尽早确定一些与上述客户端安全协议类似的协议。 这是其他几个:

其他MySQL用户

只要有可能,就不要使用root帐户与使用MySQL的应用程序建立连接。 创建一个 对该应用程序所需的数据库具有完全权限的帐户 。 MySQL Workbench应用程序只需单击几下,即可实现此目的。

MySQL连接协议

MySQL 8可以通过多种方式接受到服务器的传入连接

  • TCP / IP。 这是连接到MySQL实例的最广泛使用和理解的方式,因为它允许本地和远程连接。 它也是整体上最慢的,因为流量必须通过整个TCP / IP堆栈,尽管通常仅在需要极高性能的情况下才考虑此问题。 对于需要远程客户端连接的任何情况,TCP / IP都是一个简单的答案。 但是,您需要密切注意连接的安全性。 使用上述更高级的密码安全性,也许限制与VPN的连接,依此类推。
  • Unix套接字/命名管道。 这分别是Unix / Linux和Windows中的两个大致等效的功能。 套接字和管道最适合在客户端/应用程序和服务器位于同一系统上时使用,因为可以更快地在客户端和服务器之间传输数据。 也可以通过网络发布这样的连接,但是这样做很麻烦。 在这种情况下,最好只使用TCP / IP。
  • 共享内存。 这是服务器和客户端之间最快的连接选项,但灵活性也最差。 它仅在服务器和客户端位于同一物理系统上时才有效,并且服务器可能很难检测到客户端是否已超时或被杀死,从而导致未终止的连接积累和浪费资源。

请注意,在Unix系统上,为了提高性能,从localhost所有连接都默认使用Unix套接字。

MySQL日志记录选项

除常规错误日志外,MySQL还可以维护其他三种日志。 默认情况下,所有功能均处于禁用状态,但可以在配置过程中根据需要启用以进行调试。

  • 一般。 这提供了从启动到关闭的MySQL活动的详细运行摘要。
  • 查询速度慢。 可以记录所有执行时间超过x秒(数量可配置)的查询,以用于调试。
  • Binlog。 该日志是“二进制日志”的缩写,可以配置为包含对数据库文件的所有修改的二进制转储。 出于明显的原因,这会对性能产生重大影响,因此除非尝试调试真正棘手的问题,否则不应启用它。

默认情况下,日志不会自动清除,因此必须通过mysql-log-rotate脚本定期清除 。 唯一的例外是binlog,它默认在30天后过期。

From: https://www.infoworld.com/article/3286215/mysql-tutorial-get-started-with-mysql-8.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值